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 :: Скорость выполнения сценария

 PHP.SU

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


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

> Без описания
Pavelbeginner
Отправлено: 24 Января, 2014 - 17:38:50
Post Id



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


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


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




Здравствуйте. Вопрос мой носит теоретический характер. Заранее поблагодарю за ответы.

Мой js шлет ajax запрос за html-ем всей страницы. Когда приходит html, то я нахожу в нем все теги:
CODE (javascript):
скопировать код в буфер обмена
  1. var elements = $('*');


Затем нахожу содержимое атрибута class всех тегов
CODE (javascript):
скопировать код в буфер обмена
  1. var elementsClasses = [];
  2.  
  3. elements.each
  4. (
  5.         function()
  6.         {
  7.                 elementsClasses[elementsClasses.length] = this.attr('class');
  8.         }
  9. );


Теперь я хочу регулярными выражениями найти особые классы(особые в том смысле, что имеют определенный форма, например, имеют такой вид "prefix-myClassName", а в верстке <div class="prefix-myClassName"></div>) во всех строках из массива elementsClasses.

То есть, имеется специальный префикс prefix- в начале названия особых классов и по этому преффиксу я хочу найти все такие особые классы в верстке.

А теперь сам вопрос: насколько это будет все происходить быстро, и второй вопрос, может быть вы предложите более быстрый способ, чем я описал для выполнения поставленной задачи, а именно найти все особые классы в верстке, которые имеют определенный префикс.

Понимаю, что, чем больше размер верстки - тем больше времени на парсинг и т.д.
Наверное, нужно пояснить для чего это все нужно, чтобы понять в каком смысле я имею ввиду "на сколько быстро это будет происходить".

На странице имеются блоки, например, меню, подвал, табы, таблицы и т.д. Все эти блоки имеют определенные классы, например,
CODE (html):
скопировать код в буфер обмена
  1. <div class="prefix-menu">
  2.         <div class="prefix-menu--item">
  3.         </div>
  4. </div>
  5. <div class="prefix-tab">
  6. </div>


Так вот js и css этих блоков привязан к классам, то есть для дива с классом prefix-tab используется css файл с названием prefix-tab.css, и js файл с названием prefix-tab.js

При первой загрузке страницы сайта никакие стили и js не грузится, только html и скрипт, который ищет все используемые блоки на странице, например, блок prefix-tab. Найдя все блоки, которые используются на странице скриптом
я подгружаю js и css файлы данных блоков и вставляю на страницу.

Надеюсь, что идея понятна. Прошу оценить на сколько игра стоит свеч, ведь если на парсинг будет уходить много времени, то прощу сразу подгружать все js и css файлы.
И да, я в курсе, что существует кэш в браузере и браузер загрузив файл один раз, хранит его в кэше. Но задача следующая: сайт планируется быть без перезагрузки страницы, то есть весь html передается ajax-ом. Плюс не должно
быть задержки из-за загрузки ресурсов при первой загрузке страницы.

Надеюсь на советы и теоретическую основу, вместа наездов. Спасибо всем, кто поделится мнением и знаниями.
 
 Top
esterio
Отправлено: 24 Января, 2014 - 20:51:42
Post Id



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


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


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




Ну раз уж такая тема зайшла, то не проще дать всем JS файлам ID, и если есть такой script#ID, то не грузить. Плюс ко всему вместо смотреть на все классы елементов, вызывать JS функцию с уже сформированым списком модулей или использовать тег с data-атрибутом. Но Вы уж извините тратите час в пустую. Сам когда-то думал "Да ну jQuery весит аж 24Кб, оно будет тормозить жутко". Сейчас же я знаю что был дураком. Надеюсь я ясно обьяснил в чем глупость Вашей идеи
 
 Top
nerv
Отправлено: 24 Января, 2014 - 23:03:57
Post Id



Посетитель


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


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






-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Января, 2014 - 02:10:29
Post Id



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


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


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




Pavelbeginner пишет:
js шлет ajax запрос за html-ем всей страницы

Зачем ?
 
 Top
DelphinPRO
Отправлено: 25 Января, 2014 - 06:17:09
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




Pavelbeginner пишет:
то есть весь html передается ajax-ом

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


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MAXUS
Отправлено: 25 Января, 2014 - 09:18:56
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011  


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




Цитата:
На странице имеются блоки, например, меню, подвал, табы, таблицы и т.д. Все эти блоки имеют определенные классы, например,
CODE (html):
скопировать код в буфер обмена
  1. <div class="prefix-menu">
  2.         <div class="prefix-menu--item">
  3.         </div>
  4. </div>
  5. <div class="prefix-tab">
  6. </div>


Так вот js и css этих блоков привязан к классам, то есть для дива с классом prefix-tab используется css файл с названием prefix-tab.css, и js файл с названием prefix-tab.js

При первой загрузке страницы сайта никакие стили и js не грузится, только html и скрипт, который ищет все используемые блоки на странице, например, блок prefix-tab. Найдя все блоки, которые используются на странице скриптом
я подгружаю js и css файлы данных блоков и вставляю на страницу.

Надеюсь, что идея понятна. Прошу оценить на сколько игра стоит свеч, ведь если на парсинг будет уходить много времени, то прощу сразу подгружать все js и css файлы.
И да, я в курсе, что существует кэш в браузере и браузер загрузив файл один раз, хранит его в кэше. Но задача следующая: сайт планируется быть без перезагрузки страницы, то есть весь html передается ajax-ом. Плюс не должно
быть задержки из-за загрузки ресурсов при первой загрузке страницы.


Логика. Если это шаблонизатор и пользователь где-то сам должен создать стили, а потом еще и раскидать их по файлам с префиксами, то тогда он должнн уметь и css подключить к файлу. Ну, или если там все автоматизировано, то тем более подключить css автоматом. А если ты будешь получать html с подключенным css, то проще выдрать из него линки (тут не уверен, что их вообще надо выдирать и что они не запустятся сами)... Будет сильно быстрее. Только один нюанс надо будет решить, как не дать js работать с размерами элементов загруженного html, пока не подгрузились новые стили.

Ну, и еще момент... Раз уж ты получаешь целиком html, то зачем ждать его загрузки в dom и потом разбирать? Проще до загрузки запустить регулярку на весь html, которая выдерет там все нужные префиксы. Потом подключить соответствующие таблицы стилей, а уж потом интегрировать html в dom.
(Добавление)
armancho7777777 пишет:
Pavelbeginner пишет:
js шлет ajax запрос за html-ем всей страницы

Зачем ?


Вот это, по-моему, ключевой вопрос.

(Отредактировано автором: 25 Января, 2014 - 10:05:47)

 
 Top
nerv
Отправлено: 25 Января, 2014 - 15:22:26
Post Id



Посетитель


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


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




armancho7777777 пишет:
Зачем ?

чтобы траффик был больше )

DelphinPRO пишет:
По хорошему, стоит прикрутить клиентский шаблонизатор, а данные принимать в json-формате без всякой разметки.

какой шаблонизатор ты используешь?


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
DelphinPRO
Отправлено: 25 Января, 2014 - 15:52:45
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




nerv пишет:
какой шаблонизатор ты используешь?

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


-----
Чем больше узнаю, тем больше я не знаю.
 
 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