Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Отчего иногда может не срабатывать loadVariables? (http://www.flasher.ru/forum/showthread.php?t=208173)

Denisator 12.06.2014 15:20

Отчего иногда может не срабатывать loadVariables?
 
Есть видеоплеер на флэше AS2.0 и он отправляет на сервер таким вот образом статистику по просмотру видео:
Код AS1/AS2:

if (_root.stat_vid_0 != true) {//Отправляем в статистику 
                if (_root.toob.display.time>0) {
                        loadVariables("http://***/stat.php?act=vid_0&id="+_root.vid_id, _root);
                        _root.stat.text="otpravili 0 сек видео"
                        _root.stat_vid_0 = true;
                }
        }
        if (_root.stat_vid_10 != true) {//Отправляем в статистику
                if (_root.toob.display.time>10) {
                        loadVariables("http://***/stat.php?act=vid_10&id="+_root.vid_id, _root);
                        _root.stat.text="otpravili 10 сек видео"
                        _root.stat_vid_10 = true;
                }
        }

Тоесть, когда пользователь посмотрел 0 секунд видео отправляется инфа на сервер где фиксируется в базе и когда посмотрел 10 секунд тоже идёт отправка данных на сервер.
Так вот, у некоторых видео просмотров 10 секунд больше чем просмотров 0 секунд, хотя по логике программы этого не может быть. Код я весь проверил он простой и ошибки там вроде как не может быть.

Остаётся два варианта либо loadVariables либо stat.php не всегда срабатывает.

Подскажите на сколько "железно" работает loadVariables? Может ли он иногода не отправлять данные?

mooncar 12.06.2014 16:20

А почему вы думаете, что проблема в loadVariables (на самом деле функция эта устрела на 10 лет, вместо надо использовать LoadVars)? Почему бы вам не проверить, всегда ли выполняются условия ее вызова, например это самое oob.display.time?

Denisator 12.06.2014 16:43

Цитата:

Сообщение от mooncar (Сообщение 1167737)
А почему вы думаете, что проблема в loadVariables (на самом деле функция эта устрела на 10 лет, вместо надо использовать LoadVars)?

loadVariables для моих целей мне показалась компактней и удобней. Если вы считаете что LoadVars надёжней то я переделаю на LoadVars.

Цитата:

Сообщение от mooncar (Сообщение 1167737)
Почему бы вам не проверить, всегда ли выполняются условия ее вызова, например это самое oob.display.time?

Да вроде там негде багу вылезти, это просто счётчик секунд видео. К тому же по статистике выходит что иногда в одном и том-же просмотре видео условие toob.display.time>10 секунд он отрабатывается а toob.display.time>0 секунд нет, как это может быть?

Приведу наверное более полный код этого счётчика:
Код AS1/AS2:

onEnterFrame = function () {
        if (_root.stat_vid_0 != true) {//Отправляем в статистику
                if (_root.toob.display.time>0) {
                        loadVariables("http://***/stat.php?act=vid_0&id="+_root.vid_id, _root);
                        _root.stat.text="otpravili 0 сек видео"
                        _root.stat_vid_0 = true;
                }
        }
        if (_root.stat_vid_10 != true) {//Отправляем в статистику
                if (_root.toob.display.time>10) {
                        loadVariables("http://***/stat.php?act=vid_10&id="+_root.vid_id, _root);
                        _root.stat.text="otpravili 10 сек видео"
                        _root.stat_vid_10 = true;
                }
        }
};
stop();

Может onEnterFrame как то вилияет на loadVariables?

dark256 12.06.2014 17:42

FrameRate у вас сколько?...
"loadVariables("http:......" - закомментируйте и трэйс поставьте вместо этой строчки.
По трэйсам - все нормально?
И _root.toob.display.time тоже в трэйсе в самом начале onEnterFrame выводите......
Если там не будет от 0 и до 10 вывода, то....... бум думать далее.

Denisator 12.06.2014 18:16

Цитата:

Сообщение от dark256 (Сообщение 1167746)
FrameRate у вас сколько?...
"loadVariables("http:......" - закомментируйте и трэйс поставьте вместо этой строчки.
По трэйсам - все нормально?
И _root.toob.display.time тоже в трэйсе в самом начале onEnterFrame выводите......
Если там не будет от 0 и до 10 вывода, то....... бум думать далее.

Да у меня то и локально и на сервере всё отлично работает.
Должно работать так: пользователь начинает смотреть ролик, проигрыватель отправляет на сервак ID ролика, сервак записывает в базу в поле "VID_0" +1 промотор, далее если пользователь не закрыл окно браузера и досмотрел ролик до 10-й секунды то проигрыватель опять отправляет на сервак ID ролика и сервак записывает в другое поле "VID_10" +1 просмотр. Значит если ты просмотрел 10 секунд ролика то ОБЯЗАТЕЛЬНО промотрел 1 секунду ролика, тоесть VID_10 не может быть больше VID_0. Но в базе такое встречается у некоторых роликов.

dark256 12.06.2014 18:24

Так вопрос тогда звучит так: "почему у некторых юзеров ЭТО работает криво"?

Ну тогда - да, однозначно, вам использовать loadVars с выводом сообщений об ошибках юзеру на экран, для отправки в тех суппорт.

Вариантов куча - вплоть до антивирусной защиты и блочки отправки через файрволлы.

Denisator 12.06.2014 18:33

Цитата:

Сообщение от dark256 (Сообщение 1167755)
Так вопрос тогда звучит так: "почему у некторых юзеров ЭТО работает криво"?

Именно!

Цитата:

Сообщение от dark256 (Сообщение 1167755)
Ну тогда - да, однозначно, вам использовать loadVars с выводом сообщений об ошибках юзеру на экран, для отправки в тех суппорт.

Не, не вариант. Заказчик не даст грузить пользователя всплывающими ошибками
Хотя, наверное, можно сделать что-бы плеер отправлял сообщение об ошибке без участия пользователя каким-нибудь другим каналом, через аякс, к примеру, но что-то такое замороченное решение совсем не бюджетно выйдет :-(

Цитата:

Сообщение от dark256 (Сообщение 1167755)
Вариантов куча - вплоть до антивирусной защиты и блочки отправки через файрволлы.

Такие варианты не подходят, так как у одного и того же пользователя в один и тот-же сеанс VID_0 не отправляется, а уже через 10 секунд VID_10 успешно отправляется. Антивирусы и фаерволы рубили бы оба запроса одинаково.

dark256 15.06.2014 11:20

Тогда встраиваем в приложение такое вот

http://www.flasher.ru/forum/blog.php?b=310

Далее юзера просим сомтреть лог ошибок там.


Часовой пояс GMT +4, время: 19:54.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.