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 :: Скорость выполнения сценария
Теперь я хочу регулярными выражениями найти особые классы(особые в том смысле, что имеют определенный форма, например, имеют такой вид "prefix-myClassName", а в верстке <div class="prefix-myClassName"></div>) во всех строках из массива elementsClasses.
То есть, имеется специальный префикс prefix- в начале названия особых классов и по этому преффиксу я хочу найти все такие особые классы в верстке.
А теперь сам вопрос: насколько это будет все происходить быстро, и второй вопрос, может быть вы предложите более быстрый способ, чем я описал для выполнения поставленной задачи, а именно найти все особые классы в верстке, которые имеют определенный префикс.
Понимаю, что, чем больше размер верстки - тем больше времени на парсинг и т.д.
Наверное, нужно пояснить для чего это все нужно, чтобы понять в каком смысле я имею ввиду "на сколько быстро это будет происходить".
На странице имеются блоки, например, меню, подвал, табы, таблицы и т.д. Все эти блоки имеют определенные классы, например,
Так вот js и css этих блоков привязан к классам, то есть для дива с классом prefix-tab используется css файл с названием prefix-tab.css, и js файл с названием prefix-tab.js
При первой загрузке страницы сайта никакие стили и js не грузится, только html и скрипт, который ищет все используемые блоки на странице, например, блок prefix-tab. Найдя все блоки, которые используются на странице скриптом
я подгружаю js и css файлы данных блоков и вставляю на страницу.
Надеюсь, что идея понятна. Прошу оценить на сколько игра стоит свеч, ведь если на парсинг будет уходить много времени, то прощу сразу подгружать все js и css файлы.
И да, я в курсе, что существует кэш в браузере и браузер загрузив файл один раз, хранит его в кэше. Но задача следующая: сайт планируется быть без перезагрузки страницы, то есть весь html передается ajax-ом. Плюс не должно
быть задержки из-за загрузки ресурсов при первой загрузке страницы.
Надеюсь на советы и теоретическую основу, вместа наездов. Спасибо всем, кто поделится мнением и знаниями.
esterio
Отправлено: 24 Января, 2014 - 20:51:42
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Ну раз уж такая тема зайшла, то не проще дать всем JS файлам ID, и если есть такой script#ID, то не грузить. Плюс ко всему вместо смотреть на все классы елементов, вызывать JS функцию с уже сформированым списком модулей или использовать тег с data-атрибутом. Но Вы уж извините тратите час в пустую. Сам когда-то думал "Да ну jQuery весит аж 24Кб, оно будет тормозить жутко". Сейчас же я знаю что был дураком. Надеюсь я ясно обьяснил в чем глупость Вашей идеи
nerv
Отправлено: 24 Января, 2014 - 23:03:57
Посетитель
Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013 Откуда: Россия
----- Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
armancho7777777
Отправлено: 25 Января, 2014 - 02:10:29
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Pavelbeginner пишет:
js шлет ajax запрос за html-ем всей страницы
Зачем ?
DelphinPRO
Отправлено: 25 Января, 2014 - 06:17:09
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Pavelbeginner пишет:
то есть весь html передается ajax-ом
вот это я считаю главной ошибкой на аяксовых сайтах. По хорошему, стоит прикрутить клиентский шаблонизатор, а данные принимать в json-формате без всякой разметки.
----- Чем больше узнаю, тем больше я не знаю.
MAXUS
Отправлено: 25 Января, 2014 - 09:18:56
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
Цитата:
На странице имеются блоки, например, меню, подвал, табы, таблицы и т.д. Все эти блоки имеют определенные классы, например,
Так вот 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. (Добавление)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.