Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Скорость выполнения сценария (https://javascript.ru/forum/jquery/44573-skorost-vypolneniya-scenariya.html)

FanAizu 24.01.2014 19:37

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

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


Затем нахожу содержимое атрибута class всех тегов
var elementsClasses = [];

elements.each
(
	function()
	{
		elementsClasses[elementsClasses.length] = this.attr('class');
	}
);


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

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

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

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

На странице имеются блоки, например, меню, подвал, табы, таблицы и т.д. Все эти блоки имеют определенные классы, например,
<div class="prefix-menu">
	<div class="prefix-menu--item">
	</div>
</div>
<div class="prefix-tab">
</div>


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

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

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

Надеюсь на советы и теоретическую основу, вместа наездов. Спасибо всем, кто поделится мнением и знаниями.

danik.js 24.01.2014 19:52

Цитата:

Сообщение от FanAizu
прощу сразу подгружать все js и css файлы

Это лучше. И дело не во времени разбора, а в простоте. Вобще твой вариант какой-то чокнутый.
А вобще для начала озвучь объем объединенного, минимизированного и за gzip'ованного css и js файлов.

FanAizu 24.01.2014 20:06

Цитата:

Сообщение от danik.js (Сообщение 293885)
Это лучше. И дело не во времени разбора, а в простоте. Вобще твой вариант какой-то чокнутый.
А вобще для начала озвучь объем объединенного, минимизированного и за gzip'ованного css и js файлов.

Чем чекнутый?
css и js файлов пока нету. чисто теоретически пока продумываю такую систему.

danik.js 24.01.2014 20:19

Цитата:

Сообщение от FanAizu
html-ем всей страницы

А зачем всей? Запрашивай только содержимое изменяемой части. Параллельно можешь передавать массив скриптов для загрузки (пакуй ответ в JSON или XML. Ну или префиксов твоих, а пути к скриптам уже на клиенте определяй. Тем более, тебе же придется передавать еще и тайтл, так? Значит однозначто нужно использовать некий контейнер (JSON/XML)

danik.js 24.01.2014 20:21

Цитата:

Сообщение от FanAizu
css и js файлов пока нету. чисто теоретически пока продумываю такую систему.

Лучше пускай твои скрипты лениво подгружаются сразу после загрузки страницы. Все равно юзер потупит некоторое время перед переходом. Тогда при переходе на другую страницу будет всего один запрос - за HTML кодом, а скрипты у тя уже загружены. В результате все работать будет быстрей.


Часовой пояс GMT +3, время: 13:21.