Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Альтернатива eval

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Pavelbeginner
Отправлено: 20 Января, 2014 - 13:21:53
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




1) Доброго времени суток. Идея в следующем: на клиенте js-ом хочу определять какие скрипты должны присутствовать на странице и подгружать эти скрипты и выполнять.
Делал это следующим образом - определял какие скрипты нужны, ajax-ом подгружал их, затем вставлял в eval и выполнял. Все хорошо. Затем узнал из кучи статей, что eval - это зло, он долго выполняется, да и вообще просто плохо.
В таком случае какая существует альтернатива eval-у?

Задумка в следующем: например, есть верстка:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <ul class="social">
  3.         ...
  4. </ul>
  5.  


скриптом нахожу, что используется блок social. отправляю запрос на сервер за стилями и скриптами этого блока. Из ответа вставляю стили на страницу, а скрипт вставлял в eval. Для чего это нужно? Во-первых хотел получить автоматизацию, не надо больше париться какие стили и какой js нужно подключать на страницу - все подгружается автоматом. Во-вторых меньше размер русурсов. То есть, если раньше стили были все в одном файле здоровенном и на текущей открытойстранице могли использоваться лишь 5% от всех стилей, то сейчас подгружаются файлы со стилями только используемых блоков на странице.

2) может вы знаете аналоги подобные, реализующие данный функционал?

Спасибо.
 
 Top
esterio
Отправлено: 20 Января, 2014 - 13:32:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var script = docu,ent.createElement('script');
  2. script.setAttribute('src', src);
  3. document.body.appendChild(script);

как-то так
(Добавление)
ну а в общем сама идея плохая
 
 Top
Pavelbeginner
Отправлено: 20 Января, 2014 - 13:50:47
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




esterio пишет:
CODE (javascript):
скопировать код в буфер обмена
  1. var script = docu,ent.createElement('script');
  2. script.setAttribute('src', src);
  3. document.body.appendChild(script);

как-то так
(Добавление)
ну а в общем сама идея плохая


а подгружаемый файл стилей будет отрабатывать после того как создастся?
и чем плоха идея?
 
 Top
esterio
Отправлено: 20 Января, 2014 - 13:54:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




лучше на ПХП, если мы знаем какая страница будет отображена, грузим соответсвующий JS и стили если нужно. Например в Yii есть целый класс CClientScript для такых целей
 
 Top
Pavelbeginner
Отправлено: 20 Января, 2014 - 14:10:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




esterio пишет:
лучше на ПХП, если мы знаем какая страница будет отображена, грузим соответсвующий JS и стили если нужно. Например в Yii есть целый класс CClientScript для такых целей

да, было бы здорово, если бы страница была статичной, но в моем случае все страницы сайта подгружаются ajax-ом. На сервере я не могу(конечно могу, но это куча гемороя будет, по-моему) следить за тем какие стили уже у пользователя на странице подгружены, а какие ещё нужно прислать.
А так я на сервере получаю html новой ajax присланной страницы, нахожу какие блоки(блоки в терминологии БЭМ) используются в этой верстке, проверяю не подгружены ли уже стили и js этих блоков и, если не подгружены, отправляю запрос за стилями и js-ом этих блоков.

(Отредактировано автором: 20 Января, 2014 - 14:12:48)

 
 Top
esterio
Отправлено: 20 Января, 2014 - 14:17:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




почему сразу все не прогрузить
 
 Top
Ch_chov
Отправлено: 20 Января, 2014 - 14:20:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Pavelbeginner пишет:
То есть, если раньше стили были все в одном файле здоровенном и на текущей открытойстранице могли использоваться лишь 5% от всех стилей, то сейчас подгружаются файлы со стилями только используемых блоков на странице.

Это файл скорей всего сразу попдет в кэш браузера. Поэтому пользователю не придется его скачивать каждый раз

Pavelbeginner пишет:
может вы знаете аналоги подобные, реализующие данный функционал?

http://requirejs[dot]org
 
 Top
Pavelbeginner
Отправлено: 20 Января, 2014 - 14:24:41
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




esterio пишет:
почему сразу все не прогрузить
В каком смысле всё? Например, загрузили главную страницу, на ней используются блоки socail, menu.
Затем пользователь может перейти на страницу, наример, page_products. Эта страница аяксом грузится. На этой странице есть блок products. Так вот, зачем мне при первой загрузке странице грузить стили блока products, если пользователь вдруг не захочет заходить на страницу page_products?
(Добавление)
Ch_chov пишет:
Это файл скорей всего сразу попдет в кэш браузера. Поэтому пользователю не придется его скачивать каждый раз
Это я понимаю, но на работе, например, требование грузить на страницу только те стили, которые используются на странице и точка... Когда были статичные странице, то есть с перезагрузкой страницы, использовались бандлы, то есть для каждой страницы на сервере лежал css файл, в котором хранились все используемые на странице стили. Сейчас же, когда встал вопрос сайта без перезагрузки страницы, то есть все страницы грузятся ajax-ом, нужно новое решение.
 
 Top
esterio
Отправлено: 20 Января, 2014 - 14:35:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




затем что Вы больше кода написали на проверкы, нежели все стили из кеша пойдут
 
 Top
caballero
Отправлено: 20 Января, 2014 - 14:36:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




на вашем месте самое лучшее решение смеить работу. Когда у манагеров вывернуты мозги только и будете бегать по форумам как реализовать очередное идиотское требование


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
nerv
Отправлено: 22 Января, 2014 - 19:47:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




Pavelbeginner пишет:
В таком случае какая существует альтернатива eval-у?


но ты занимаешься ерундой

esterio пишет:
почему сразу все не прогрузить

ты действительно не знаешь почему?)

Pavelbeginner пишет:
2) может вы знаете аналоги подобные, реализующие данный функционал?

читай на хабре про AMD


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB