Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

как реализовать отложенные функции в пхп?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> как реализовать отложенные функции в пхп?
Имя
Сообщение << Старые топики   Новые топики >>
как реализовать отложенные функции в пхп? - 2009-04-24 22:42:41.533333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
Очень хочу понять как это реализуется…
вот сам алгоритм работы этих функций:

quote:

Алгоритм работы данной технологии:

1. любой исходящий поток из PHP скрипта буферизируется
2. как только в коде встречается одна из функций, которые помеченны как отложенные, то:
1. весь буферизированный до этого контент запоминается в очередном элементе стэка A
2. в стэк A добавляется пустой элемент, который в дальнейшем будет заполнен результатом выполнения отложенной функции
3. имя отложенной функции запоминается в стэке B
4. буфер очищается и буферизация снова включается
Таким образом существует стэк A, в котором находится весь контент страницы разбитый на части. В этом же стэке есть пустые элементы предназначенные для их дальнейшего заполнения результатами отложенных функций.
Также существует стэк B, в котором запоминаются имена и параметры отложенных функции в порядке их следования в коде.

3. в конце страницы в служебной части эпилога выполняются следующие действия:
1. все отложенные функции из стэка B начинают выполняться одна за другой
2. результаты их выполнения вставляются в специально предназначенные для этого места в стэк A
3. весь контент из стэка A "склеивается" (конкатенируется) и выводится на экран

Таким образом, данная технология позволяет фрагментировать весь контент страницы, разбивая его на части с помощью специальных функций обеспечивающих временное откладывание выполнения других функций (отложенных функций). В конце страницы все отложенные функции выполняются одна за другой и результаты их выполнения вставляются в отведенные для этого места внутри фрагментированного контента страницы. Затем весь контент склеивается и выводится в поток (отправляется браузеру посетителя сайта).


а вот как его реализовать практически не представляю…
может у кого есть какиенить наработки или есть желание подискутировать на тему реализации подобной технологии высказывайте ваше мнение :)
Post #: 1
RE: как реализовать отложенные функции в пхп? - 2009-04-26 05:34:35.193333   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
http://en.wikipedia.org/wiki/Lazy_evaluation
http://en.wikipedia.org/wiki/Memoization

очень сложный алгоритм реализации suspend и force на похапэ. очень
Post #: 2
RE: как реализовать отложенные функции в пхп? - 2009-04-26 14:08:01.326666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
могу показать продукт, где этот алгоритм реализован и успешно работает.
в том, что он сложный не сомневаюсь даже, но очень хочу реализовать.
при чём как показывает практика и мой личный опыт, любой даже самый сложный алгоритм можно всегда упростить :)
так например когда я писал постраничную навигацию изначальный код мой был приблизительно в строк 30 кода и он отлично работал… но согласитесь, чтото многовато для такой простой функции… переделал алгоритм в корне, сменил логику работы, конечный алгоритм вписался в 3 коротенькие строчки кода :)

это я к тому, что нет ничего невозможного :)
а ссылочки несовсем по теме, так как там не на пхп пример. а если просто посмотреть алгоритм, так я его уже привёл выше
Post #: 3
RE: как реализовать отложенные функции в пхп? - 2009-04-27 00:09:55.743333   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
а ты по ссылочкам попробуй почитать сначала. это не сложно и не больно

и ещё посмотри в педивикии что такое сарказм
Post #: 4
RE: как реализовать отложенные функции в пхп? - 2009-04-27 00:19:37.773333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
я ссылочки почитал..
повторюсь, меня интересует практическая реализация… принцип работы и принцип организации я и так знаю
Post #: 5
RE: как реализовать отложенные функции в пхп? - 2009-04-27 01:09:29.400000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
2 Denaturat:

quote:


и ещё посмотри в педивикии что такое сарказм


вот-вот[sm=ag.gif]

Ехидна какая:)
Post #: 6
RE: как реализовать отложенные функции в пхп? - 2009-04-27 10:25:38.656666   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
используй комбинацию ob_start(); ob_get_contents(); ob_end_clean();
Post #: 7
RE: как реализовать отложенные функции в пхп? - 2009-04-27 10:31:42.243333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
а ob_start как я понял буферизирует только уже исходный обработанный контент?
и разбивается он на какиенить участки так скачать?
просто как не пробовал, разбить буфер на части так и не получилось.. как это сделать?
Post #: 8
RE: как реализовать отложенные функции в пхп? - 2009-07-26 00:06:09.690000   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
я таки придумал как реализоватьотложенные функции.. мне надо это понадобилось всего ниего… 3 месяца))))))))
отложенные функции пхп вот результат моих исследований :)
если в кратце то мы буферизируем контент, в местах отложеня выводим временные заглушки а потом через прэг рэплэйс их заменяем
Post #: 9
RE: как реализовать отложенные функции в пхп? - 2009-07-26 00:17:24.783333   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
я так сто лет титлы меняю.
Post #: 10
RE: как реализовать отложенные функции в пхп? - 2009-07-28 00:46:35.516666   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
титл это мелоч :) это всего лиш маленький пример на котором проще всего показать работоспособность…
я его использую совсем в других нуждах :)
Post #: 11
RE: как реализовать отложенные функции в пхп? - 2009-07-28 00:54:56.390000   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
Буферизация под многие нужды подходит)

ЗЫ. Ошибки исправь на странице по ссылке. Хоть через ворд бы прогонял, чтоли :)
Post #: 12
RE: как реализовать отложенные функции в пхп? - 2009-07-28 08:54:17.756666   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
ворда нет.. есть только опенофис, у меня кагбэ линкс :))
а проверять лениво было
Post #: 13
Страниц:  [1]
Все форумы >> [Веб-программинг] >> как реализовать отложенные функции в пхп?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.