Забыли пароль?
Запросите новый здесь.

Автор темы: Zaxap
ID темы: 2673
Информация:
Тема содержит 8 сообщения, была просмотрена 4967 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » Javascript, ajax, jquery
 Распечатать тему
Как проверить, загружен ли скрипт?
Zaxap
Как осуществить данную проверку?
Решил загружать необходимые скрипты только по мере необходимости в их функционале, дабы не грузить пользователей, которые не нажимают на те или иные кнопки, тем, что за этими кнопками скрыто...
Допустим, я зашел на страницу, ткнул <button> - загрузился скрипт, отвечающий за модальные окна (например, какой-нибудь jquery.plugin), открылось модальное окно. Я закрыл это окно и открыл снова. По логике тут скрипт должен загрузиться снова, так вот как мне избежать этого?

Example:
Загрузить источник  GeSHi: Javascript
  1. function loadScript(url, callback) {
  2. var script = document.createElement("script");
  3.  
  4. if (script.readyState) { //IE
  5. script.onreadystatechange = function () {
  6. if (script.readyState == "loaded" ||
  7. script.readyState == "complete") {
  8. script.onreadystatechange = null;
  9. callback();
  10. }
  11. }
  12. }
  13. else { //Others
  14. script.onload = function () {
  15. callback();
  16. };
  17. }
  18.  
  19. script.src = url;
  20. document.getElementsByTagName("head")[0].appendChild(script);
  21. }
  22.  
  23.  
  24.  
  25.  
  26. $('#modal').find('button').click( function () {
  27. loadScript('modal.js', function () {
  28. modal('Hello world');
  29. })
  30. })
Добавлено за 0.006 секунд, используя GeSHi 1.0.8.10

Зло не дремлет, а я добрый...
 
Deorchik
Zaxap, Думаю никак, тк скрипт загружается по клику, а чего так не выйдет, отдельно его грузить?
 
Web
Zaxap
Deorchik, loadScript, полагаю, нужно установить if-условие, в которое тоже зафигачить callback(); без загрузки скрипта, но вот дальше я не могу нормально мыслить... Можно, конечно, проверить, существует ли скрипт в head, но думал, что нужно проверять как-то более эффективно (например, загружен ли скрипт вообще)... Хотя, я мало разбираюсь в этих причудах браузеров...
Пока сделаю описанную проверку, а потом уже посмотрим.
- - - - - - - - - - - - - - - -
Понаблюдал за скриптами - пришел к выводу, что они повторно не загружаются, посмотрим...
Изменил(а) Zaxap, 24.03.2016 04:00
Зло не дремлет, а я добрый...
 
Polarfox
если все грузится по твоей функции - почему ты не учитываешь их в список загруженных скриптов?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
x1 x1 x1
 
Zaxap
PolarFox, не совсем понял, можно подробнее? Например?
Зло не дремлет, а я добрый...
 
Rush
думаю это ответ на твой вопрос https://webpack.g.... а вообще вопрос модульной lazy загрузки в жабаскрипте довольно старый и все еще актуальный вопрос
x1
 
Web
Zaxap
Rush, немного не то, и это тяжеловато будет) У меня сама библиотека весит 15-20кб)) Думаю, require-функция - то, что мне нужно...пожалуйab Будем искать
Зло не дремлет, а я добрый...
 
Rush
хоспаде, зачем париться насчет 20кб?
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Как сделать микроразметку на сайте?  →  PHP 1 / 365 22.07.2021 06:39
Как вебмастеру сформулировали УТП для создания сайтов на PHP-Fusion?  →  Пожелания и предложения 1 / 3442 25.07.2020 03:46
SEO-оптимизация. дубли страниц в PHP-Fusion - где искать и как избавиться?  →  Ошибки, баги 0 / 1783 19.06.2020 17:06
Как вывести все данные из таблицы, за исключением администраторов  →  Плагины 3 / 2222 24.02.2020 15:59
Как перейти с http на https  →  Вопросы новичков 30 / 25728 24.10.2019 18:45
Как правильно сделать ЧПУ и переиндексировать сайт?  →  Моды 4 / 7013 24.10.2019 17:38
Как перенести ресурс на другой домен  →  Установка и настройка системы 5 / 1452 24.10.2019 14:01
Посоветуйте JS-слайдер чтобы фотки JPG сменялись как в GIF-анимации  →  Плагины 2 / 4291 20.10.2019 13:34
Перешел на HttpS - Как теперь удалить Http?!  →  Вопросы новичков 1 / 2620 18.06.2019 13:19
как правильно сделать phpmailer на utf-8?  →  Ошибки, баги 5 / 2449 09.06.2019 14:15
Топ 5 пользователей форума
Alex Alex (1,246)   Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)