как реализовать отложенные функции в пхп?
Пользователи, просматривающие топик: 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 "склеивается" (конкатенируется) и выводится на экран Таким образом, данная технология позволяет фрагментировать весь контент страницы, разбивая его на части с помощью специальных функций обеспечивающих временное откладывание выполнения других функций (отложенных функций). В конце страницы все отложенные функции выполняются одна за другой и результаты их выполнения вставляются в отведенные для этого места внутри фрагментированного контента страницы. Затем весь контент склеивается и выводится в поток (отправляется браузеру посетителя сайта). а вот как его реализовать практически не представляю… может у кого есть какиенить наработки или есть желание подискутировать на тему реализации подобной технологии высказывайте ваше мнение :)
|
|
|
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 на похапэ. очень
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-04-26 14:08:01.326666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
могу показать продукт, где этот алгоритм реализован и успешно работает. в том, что он сложный не сомневаюсь даже, но очень хочу реализовать. при чём как показывает практика и мой личный опыт, любой даже самый сложный алгоритм можно всегда упростить :) так например когда я писал постраничную навигацию изначальный код мой был приблизительно в строк 30 кода и он отлично работал… но согласитесь, чтото многовато для такой простой функции… переделал алгоритм в корне, сменил логику работы, конечный алгоритм вписался в 3 коротенькие строчки кода :) это я к тому, что нет ничего невозможного :) а ссылочки несовсем по теме, так как там не на пхп пример. а если просто посмотреть алгоритм, так я его уже привёл выше
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-04-27 00:09:55.743333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
а ты по ссылочкам попробуй почитать сначала. это не сложно и не больно и ещё посмотри в педивикии что такое сарказм
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-04-27 00:19:37.773333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
я ссылочки почитал.. повторюсь, меня интересует практическая реализация… принцип работы и принцип организации я и так знаю
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-04-27 01:09:29.400000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
2 Denaturat: quote:
и ещё посмотри в педивикии что такое сарказм вот-вот[sm=ag.gif] Ехидна какая:)
|
|
|
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();
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-04-27 10:31:42.243333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
а ob_start как я понял буферизирует только уже исходный обработанный контент? и разбивается он на какиенить участки так скачать? просто как не пробовал, разбить буфер на части так и не получилось.. как это сделать?
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-07-26 00:06:09.690000
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
я таки придумал как реализоватьотложенные функции.. мне надо это понадобилось всего ниего… 3 месяца)))))))) отложенные функции пхп вот результат моих исследований :) если в кратце то мы буферизируем контент, в местах отложеня выводим временные заглушки а потом через прэг рэплэйс их заменяем
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-07-26 00:17:24.783333
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
я так сто лет титлы меняю.
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-07-28 00:46:35.516666
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
титл это мелоч :) это всего лиш маленький пример на котором проще всего показать работоспособность… я его использую совсем в других нуждах :)
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-07-28 00:54:56.390000
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Буферизация под многие нужды подходит) ЗЫ. Ошибки исправь на странице по ссылке. Хоть через ворд бы прогонял, чтоли :)
|
|
|
RE: как реализовать отложенные функции в пхп? - 2009-07-28 08:54:17.756666
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
ворда нет.. есть только опенофис, у меня кагбэ линкс :)) а проверять лениво было
|
|
|
|
|