вторник, 10 мая 2011 г.

Что такое w framework?

В этой статье я попытаюсь объяснить, что же такое w framework и чем он отличается от остальных web framework'ов. Дело в том, что я написал web framework, а вот объяснить людям что это такое толком так наверное и не вышло, но все равно я свою идею считаю перспективной и имеющей право на жизнь, далее будет еще одна попытка объяснить, что такой w framework.

И так, html-страницу условно можно разделить на несколько блоков(областей), для примера возьму следующие названия блоков: "head", "menu", "lastnews", "catalog", "foot", "content", "comm"; и предположим, что я загрузил страницу("page1") на которой будут располагаться данные со следующих блоков: "head", "menu", "lastnews", "catalog", "foot", а блоки "content" и "comm" на данный момент неактивны(не задействованы в отображении html-страницы); так же есть вторая страница(page2), которую формируют данные из следующих блоков: "head", "menu", "lastnews",  "content", "comm", "foot". Думаю суть примера и то каким образом это все делается в других фреймворках ясна.
Первое, в w framework'e при переходе "page1"->"page2" с сервера запрашиваются только те данные, которые должны содержатся в областях  "content", "comm", а область "catalog" становится неактивной. При переходе "page2"->"page1" все происходит с точность до наоборот. Стоит также упомянуть о реализованных возможностях, например: при переходе "page1"->"page2" необходимо также запросить данные с сервера и для области "lastnews"(стоит задача обновить содержимое данного блока), это можно сделать задав соответствующий параметр контроллера; или другой пример: необходимо, что б содержимое области "head" обновлялось из сервера через заданный промежуток времени, для этого также достаточно задать соответствующий параметр контроллера.
Далее стоит вкратце описать, как это все реализовано. Думаю, очевидно то, что html-страница один раз загружается и больше не перезагружается, новые данные получаются при помощи ajax запросов. После получения очередной порции данных для запрашиваемых областей, содержимое областей, например "content", заполняется html-данными, которые формирует представление, если в текущей области(теге) есть какое то содержимое оно удаляется. Допустим в блоке "content" есть ссылка(тег с атрибутом href или data-href) которая ведет на страницу "page1",  и при клике по данному тегу происходит формирование url-адреса с учетом параметров контроллера и по этому url запрашиваются данные, данные приходят в виде массива: {"имя области":"целевые данные",...}, и далее целевые данные обрабатываются представлениями, которые закреплены, каждое за своей областью и соответствующие ключю первичных данных, полученных от сервера.
Второе, в качестве серверного языка в w framework'e используется php, аргументировать почему, думаю не стоит, но суть не в этом. В процессе разработке я увидел, что буде очень удобно, если к какой то области(блоку), например "content", будет привязано представление(находится на клиенте), контроллер(представлен в виде параметров и частично загружается на клиент при первой загрузке на клиент) и модель(находится на сервере и возвращает данные), так я в общем и сделал, то есть написал свой php framework, который в последствии вошел в w framework. Еще одним преимуществом такой реализации является то, что можно очень удачно интегрировать систему кэширование к серверной части w framework'a, что тоже было сделано.

В общем, я думаю, меня удалось ответить на вопрос: Что такое w framework?.
Где использовать и использовать ли вообще w framework, это Ваше личное дело, но например: надо написать админку к простой cms(на мой взгляд, типичная задача для w framework'a) - с w framework Вы с этой задачей справитесь быстрее, чем с любым другим(и) web framework'ом(ами).
И еще одно, в отношении производительности php(стандартное использование) один из самых худших вариантов, и по этому, в качестве альтернативы я рассматриваю возможную реализацию серверной части w framework'a на node.js.

Комментариев нет:

Отправить комментарий