Заголовок сообщения: loadVars Добавлено: 16 Март 2005, 11:41:53
народ помогите! есть такая трабла:
скриптом грузиться данных что-то около 780килобайт, приблизительно в 60% процентах загрузки вылетает плеер или обрывается соединение что-то типа (заданный файл не найден, проверьте путь)…
данные: это скрипт ПХП опрашивающий базу по 1500 позициям, если грузить просто файл таких размеров, то никаких проблем...
загрузка вылетает приблизительно на 200 - 350 килобайтах загруженных
скрипт во флэше:
Код:
lv = new LoadVars (); i = 0; this.onEnterFrame = function () { lv.load ('http://www.7thsky.ru/works/list05/php/list_load.php?type=all&string=&'); this.onEnterFrame = function () { i ++; var lo = this.lv.getBytesLoaded (); var to = this.lv.getBytesTotal (); trace ('i: ' + i + ': lo: ' + lo + ': to: ' + to); if (lv.loaded || (to * lo > 0 && lo == to)) { delete this.onEnterFrame; trace (this.lv ['connection']); } } }
З.Ы. любителям посылать на F1 и RTFM - был, читал уже
еще просьба не советовать переустановить флэш, так как вылетает не только на моем компе, а что самое обидное на компах операторов клиента
И ещо, это глупо посылать данные в пхп чтобы он собрал файл для флеша. и так каждый раз. проще делать так: после изменений в базе создавать файл с переменными (например в админке кнопа - файл для флеша) и уже его грузить, не насилуя базу.
p.s.
писал тут поэтому мало ли.. какие синтаксические.…
3 Сообщения: 276 Зарегистрирован: 23.07.04 Откуда: UA
Добавлено: 16 Март 2005, 12:43:15
Ты не правильно инициируешь загрузку. У меня попервах была такая же ошибка.
Гляди: ты в теле onEnterFrame вызываешь
lv.load ('http://www.7thsky.ru/works/list05/php/list_load.php?type=all&string=&');
И поэтому каждые FPS раз в секунду у тебя идет обращение к скрипту. Конечно плеер вылетит.
Вот верный код (одно this.onEnterFrame у тебя лишнее):
Код:
lv.load ('http://www.7thsky.ru/works/list05/php/list_load.php?type=all&string=&'); this.onEnterFrame = function () { i ++; var lo = this.lv.getBytesLoaded (); var to = this.lv.getBytesTotal ();
if (lo/to==1) { delete this.onEnterFrame; //Some action } }
И ещо, это глупо посылать данные в пхп чтобы он собрал файл для флеша. и так каждый раз. проще делать так: после изменений в базе создавать файл с переменными (например в админке кнопа - файл для флеша) и уже его грузить, не насилуя базу.
p.s. писал тут поэтому мало ли.. какие синтаксические.…
[/quote]
я же сказал тектстовый файл не проблема грузить хоть 1,5 мега, проблема грузить данные которые скрипт ПХП парсит с базы\
ну ты сказал:) "глуппо пысылать данные в ПХП" уморил
тем более у меня проблема именно в админке...
Ты не правильно инициируешь загрузку. У меня попервах была такая же ошибка. Гляди: ты в теле onEnterFrame вызываешь lv.load ('http://www.7thsky.ru/works/list05/php/list_load.php?type=all&string=&'); И поэтому каждые FPS раз в секунду у тебя идет обращение к скрипту. Конечно плеер вылетит.
Вот верный код (одно this.onEnterFrame у тебя лишнее):
Код:
lv.load ('http://www.7thsky.ru/works/list05/php/list_load.php?type=all&string=&'); this.onEnterFrame = function () { i ++; var lo = this.lv.getBytesLoaded (); var to = this.lv.getBytesTotal ();
if (lo/to==1) { delete this.onEnterFrame; //Some action } }
ой блин, ну что трудно посмотреть?
первый онЕнтер фрайм запускает загрузку, второй начинает байты считать (который определяется в первом), и вообще я знаю как иницилизируется объект loadVars, этот скрипт был написан просто посмотреть как и где загрузка обрывается (ссылка на рабочую тулзу http://www.7thsky.ru/works/list05)
sump, рад что ты веселишься, но уморить тебя цели нет.
зачем каждый раз парсить одни и теже данные? это не логично. проще раз создать файл с этими данными (тхт) и грузить его.
И только при изменениях в базе менять содержимое тхт файла.
Кстати читай предложения до конца, имхо твоя невнимательность и есть причина проблемы.
Цитата:
это глупо посылать данные в пхп чтобы он собрал файл для флеша. и так каждый раз.
P.s.
повторюсь, если ты уверен в своём неграмотном коде, то проверь настройки пхп.
3 Сообщения: 276 Зарегистрирован: 23.07.04 Откуда: UA
Добавлено: 16 Март 2005, 13:09:24
sump писал(а):
ой блин, ну что трудно посмотреть? первый онЕнтер фрайм запускает загрузку, второй начинает байты считать (который определяется в первом), и вообще я знаю как иницилизируется объект loadVars, этот скрипт был написан просто посмотреть как и где загрузка обрывается (ссылка на рабочую тулзу http://www.7thsky.ru/works/list05)
Посмотреть не трудно. Просто это кривая переинициализация функции.
А насчет LoadVars: судя по траблу - проблема в пхп
sump, рад что ты веселишься, но уморить тебя цели нет. зачем каждый раз парсить одни и теже данные? это не логично. проще раз создать файл с этими данными (тхт) и грузить его. И только при изменениях в базе менять содержимое тхт файла.
Кстати читай предложения до конца, имхо твоя невнимательность и есть причина проблемы.
Цитата:
это глупо посылать данные в пхп чтобы он собрал файл для флеша. и так каждый раз.
P.s. повторюсь, если ты уверен в своём неграмотном коде, то проверь настройки пхп.
потому что есть 18 таблиц, база 5 мег, работает 5 операторов ОДНОВРЕМЕННО, потом эта тулза есть админка для операторов, есть ПОСТОЯННЫЕ изменения в базу, в том то все и дело что это не ОДНИ и теже данные
если ты зашел по ссылке на тулзу, то заметил что я немного знаю акшнскрипт и как иницилизировать loadVars то же, просто бессит когда вместно ответа на вопрос (может я все таки не корректно объяснил проблему, если да то сорри) получаешь советы в которых тебе объясняют как работать с loadVars
такой код для вас нормальный?
Код:
lv = new LoadVars (); lv.type = 'all'; lv.string = ''; lv.onLoad = function (a) { if (a) { trace (this ['connection']); } else { trace ('connection error'); } // end if } lv.sendAndLoad ('http://www.7thsky.ru/works/list05/php/list_load.php', lv, 'POST');
this.onEnterFrame = function () { var lo = this.lv.getBytesLoaded (); var to = this.lv.getBytesTotal (); if (lo * to > 0 && lo >= to) { delete this.onEnterFrame; trace ('lo: ' + lo + ': to: ' + to); trace ('ok'); } // end if trace ('lo: ' + lo + ': to: ' + to); }
если пхп нормально отдаёт и ты это видишь (смотришь файл который парсится) то
вопервых, но врядли - может слабая тачка и не хватает памяти/ресурсов чтоб хранить стока всего
во вторых - если ты можешь загрузить такой же статичный файл. тобишь сохранить отпарсенный пхп и этим же методом (loadvars) загрузить его, то покажи headers которые осылаются и принимаются. в обоих случаях. это надо сделать для того, чтобы на 100 процентов убедится в невиновности сервера.
если пхп нормально отдаёт и ты это видишь (смотришь файл который парсится) то вопервых, но врядли - может слабая тачка и не хватает памяти/ресурсов чтоб хранить стока всего
насчет слабости тачки: были сначала такие подозрения, но отключил прорисовку данный после получения такие же проблемы, написал свой парсер (данные грузил через onData и contentType = 'text/plain'), который парсит каждые 100 позиций в каждом фрейме, то кол-во фреймов сколько нужно, то же самое, потом посмотрел где обрывается загрузка...
Цитата:
во вторых - если ты можешь загрузить такой же статичный файл. тобишь сохранить отпарсенный пхп и этим же методом (loadvars) загрузить его
могу, грузиться на ура, в целях эксперемента грузил что около 2 мег, то же грузиться без проблем...
скорее всего это бред, но стоит задуматься над тем что:
пхп не успевает создать файл с данными, тоесть данные то он получил, и даже начал парсить, тока флеш шустро доходит до нелогичного конца файла и выдаёт ошибку.
ну а если размер отпарсенных данных меньше? например 100 кб
работает?
скорее всего это бред, но стоит задуматься над тем что: пхп не успевает создать файл с данными, тоесть данные то он получил, и даже начал парсить, тока флеш шустро доходит до нелогичного конца файла и выдаёт ошибку.
ну а если размер отпарсенных данных меньше? например 100 кб работает?
работает, до 300 кило грузиться нормально, что еще замеченно что если сервер не нагружен, скрипт отрабатывается быстрее, то флэш не вылетает, но...
можно как нибудь увеличить время ожидание во флэше? в ПХП я увелечиваю время исполнение скрипта до 1,5 минут, так, что тут все такие проблема в получении данных...
я не знаю как можно увеличить
можно попробовать вот что
если событие
lv.onLoad=function(chk){
trace(chk)
}
выдаст false то заново инициализировать загрузку, и так до победного
гы..
или покажи свой пхп код, думаю всё это решаемо без трепанации флеша
// guests - INVITES $subquery = 'SELECT count(*) AS total FROM `party_guests` WHERE `parent_id` = \''.$row->parent_id.'\' '; $subresult = mysql_query ($subquery) or die ('connection=5&'); $subrow = mysql_fetch_assoc ($subresult); echo 'p'.$i.'_guestsNum='.$subrow['total'].'&';
// reviews $subquery = 'SELECT count(*) AS total FROM `reviews` WHERE `ParentID` = \''.$row->parent_id.'\' '; $subresult = mysql_query ($subquery) or die ('connection=6&'); $subrow = mysql_fetch_assoc ($subresult); echo 'p'.$i.'_reviewsNum='.$subrow['total'].'&';
// uploads $subquery = 'SELECT count(*) AS total FROM `party_media` WHERE `parent_id` = \''.$row->parent_id.'\' '; $subresult = mysql_query ($subquery) or die ('connection=7&'); $subrow = mysql_fetch_assoc ($subresult); echo 'p'.$i.'_uploadsNum='.$subrow['total'].'&'; } // end function
// data $link = @mysql_connect ($my_host, $my_username, $my_password) or die ("connection=1&"); mysql_select_db ($my_database) or die ("connection=2&");
if ($_GET ['type'] == '') { $a = $_POST ['type']; $b = $_POST ['string']; } else { $a = $_GET ['type']; $b = $_GET ['string']; } // end if
if ($a == 'letter' || $a == 'name') { $searchString = 'AND tb2.last LIKE \''.$b.'%\' '; } else { $searchString = ''; } // end if
вобщем нужно сделать так
всё что ты выводишь через echo нужно присваивать к переменной, например $flash_result.="";
и в конце скрипта. в самом конце! сделать одно лишь еcho $flash_result; затем закрыть скрипт ?> и будет тебе щастье. иначе именно та проблема о которой я говорил постом выше
вобщем нужно сделать так всё что ты выводишь через echo нужно присваивать к переменной, например $flash_result.=""; и в конце скрипта. в самом конце! сделать одно лишь еcho $flash_result; затем закрыть скрипт ?> и будет тебе щастье. иначе именно та проблема о которой я говорил постом выше
да будет тебе счастье о bE(o0L пока вроде не вылетает санкс будем учить ПХП (матчасть). не мог ты мне по Аське [18706810] подробнее объяснить чем отличаются варианты
у меня в опере и ИЕ все нормально (ИЕ 6, опера 7,54), в фаерфоксе
(Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0) загрузка обрывается на 7-8 килобайтах
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.