PDA

Просмотр полной версии : Crontab на Флэшэ


Partiz
15.10.2001, 19:31
Доброго времени суток многоуважаемый All!

Возникла следующая трабла: нужно сделать казалось-бы элементарную
задачку, заставить флэш ролик с определенной периодичностью (5 min)
лазить на сервак за данными и казать их юзеру.
По началу казалось решение данной задачи плевым: делаем мувик из
трех кадров (кадр 1) грузим данные через loadVariables и по
onClipEvent(data) засовываем данные куда надо, запоминаем текущее
Date.getTime() + 5*60*1000; (кадр 2) рисуем анимацию (кадр 3) сравниваем
запомненное Date.getTime() с текущим Date.getTime() если текущее время
больше запомненного идем на первый кадр за новой порцией данных, иначе
на кадр два - продолжать рисовать анимацию.
Проблема в следующем: При каждой необходимости узнать текущее время
приходится заново создавать объект Date, что IMHO жрет немерянно
системных ресурсов и соответственно такое решение неприемлемо.
Пробовал обойти данную проблему через getTimer() - результат
оказался тем-же :(
Может кто сталкивался с данным траблом? поделитесь своими изысканиями
по данному поводу...

WBR,
Serge.

C2Plus
16.10.2001, 12:14
когда мне нужно создать какой-либо объект в повторяющемся участке кода, я обычно пишу такую конструкцию:

delete a
a = new object()

если a уже есть, она умрет :) а потом воскреснет. :) по-моему здоровска. :)

Partiz
16.10.2001, 19:00
Ясное дело здоровска ! если данную конструкцию не написать получишь
полбу MemoryLeak-ом (ух сколько я с этими Leak-ами поимел проблем
когда писал свои первые юниховые демоны...)
Но фишка не в этом... фишка в том, что a=new Date(); жрет достаточно
много ЦПУ и если эта конструкция находится в цикле сжирание 100%
процессорнового времени гарантировано.

Короче, проблема решилась использованием отдельного Мувиклипа без
графики состоящего из трех кадров где в первом loadVariables и
wtime=getTimer()+5*60*1000; а в третем сравнение wtime с getTimer();
и переходом либо на первый кадр либо на второй...