Автозагрузка javascript кода сохраненного в localstorage

Здравствуйте, дорогие друзья. Хочу представить Вам свою библиотеку для динамической загрузки javascript кода, библиотек и фреймворков.

Основную проблему, которую я попытался разрешить, это быстрая загрузка множества скриптов за счет перемещения их в локальное хранилище — localstorage. Для этого я написал небольшой класс позволяющий это сделать (JStore). Данный класс состоит из нескольких функций: функции для определения хеша текста, кодирование и декодирование текста с javascript кодом, ну и основного метода, загружающего javascript код.

Рассмотрим подробно все этапы работы моего класса:

  1. Проверяем был ли ранее загружен указанный javascript код или класс.
  2. Если не был загружен, проверяем доступен ли нам localstorage. В случае наличия поддержки браузером локального хранилища, ищем его по указанному имени и дополнительно сверяем md5 хеш javascript. Если код соответствует md5 хешу, то загружаем его добавлением в заголовок HTML страницы (head) код внутри тегов: .
  3. Далее проверяем был ли загружен заданный javascript код, то пытаемся загрузить его из указанного url и при возможности сохраняем в localstorage.

Для того, что бы использовать мою библиотеку нужно выполнить следующее:

1. В заголовок HTML страницы внутри тега "" подключаем нашу библиотеку:

<script type="application/javascript" src="JStore.class.js"></script>

2. Проверяем была ли ранее инициализирована данная библиотека:

if(typeof(window['jstore'])!='object' || window['jstore']===null)
     window['jstore'] = new JStore();

3. Загружаем нужные нам библиотеки/фреймворки/код вызовом метода из моего класса:

window['jstore'].load(name, md5, url);

В качестве параметров передаем: name — удобное имя ассоциирующееся с этим кодом (библиотеки/фреймворки/код), md5 — хеш код для текста javascript загружаемого кода, url — адрес откуда можно загрузить из интернета этот код. Есть еще 4-й параметр: asinc — который указывает как загружать с сайта javascript код асинхронно или синхронно (по умолчанию синхронно).

В принципе все. Дальше можно использовать свой код из локального хранилища. Данный подход ускорил загрузку страниц сайта за счет исключения обращений к сайту через сеть (загрузка с локального диска гораздо быстрее происходит). Уменьшил кол-во обращений к сайту. Позволил с помощью хеша отслеживать актуальность и целостность javascript кода. Эту библиотеку я выложил на гитхаб для всеобщего обзора. А так же там разместил пример как ей пользоваться. Жду Ваших комментарий и мнений. И буду рад если она Вам понравится и Вы ей будете пользоваться.
Теги:
neovav, github, javascript, localstorage, hiload, hi load, optimization, html, js, веб хранилище, локальное хранилище, гитхаб, ускорение сайта, ускорение страниц, оптимизация, оптимизация сайта, уменьшение нагрузки

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.