|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
|||||||||||
Как избежать повторной загрузки уже загруженного модуля?16.01.2025, 21:33. Показов 872. Ответов 15
Метки нет (Все метки)
Добрый вечер!
Прошу подсказать по модулям - экспорт переменных из них. У меня есть 2 файла: (1) головной - ws_chat4.html - он загружается в браузер при открытии страницы (2) библиотечный модуль - ws_chat4_win.js Модуль (2) обращается к переменной connection, объявленной в (1).Для этого он делает import.Чтобы он мог это сделать, модуль (1) экспортирует connection.Хронология запросов в браузера такова: - открывается страница с файлом (1), - открывается библиотечный файл (2), - в файле (2)есть import - браузер видит это и опять делает GET для файла (1) - но файл (1) уже загружен. ![]() Вопрос - как избежать этой загрузки, т.е. дать браузеру понять, чтоб он воспользовался файлом, загруженном на шаге 1 ? Фрагменты файла (1)
Фрагменты файла (2)
0
|
|||||||||||
| 16.01.2025, 21:33 | |
|
Ответы с готовыми решениями:
15
Как избежать повторного выполнения функции Ajax загрузка формы из загруженного через ajax блока window.open() Как это окно заставить при повторной загрузке страницы подниматься на передний план? |
|
1245 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,264
|
|||||||
| 16.01.2025, 21:40 | |||||||
|
С чего вы взяли про второй get? Модуль загружается только один раз, сколько бы он не вызывался.
1
|
|||||||
|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
||
| 16.01.2025, 21:46 [ТС] | ||
|
1-ая строка - 1-ая загрузка файла (1). Правда здесь не задается его имя. У моего сервера есть таблица мэппинга, которая при выдаче GET /chat выдает файл (1). Строка 4 - это 2-ая попытка. Она здесь неудачна, т.е. сервер не нашел мэппинг. Но тем не менее она делается, и если я настрою мэппинг для main, то загрузка пойдет.
0
|
||
|
1245 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,264
|
||
| 16.01.2025, 22:25 | ||
|
Откуда пойдет загрузка? У вас скрипт main в html встроен. Добавлено через 3 минуты Ну и первый раз загружается не модуль, а страница. Если действительно, вдруг, идет повторная загрузка страницы, как модуля (я так никогда не пробовал делать), то уберите встроенный на страницу модуль в отдельный файл.
1
|
||
|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
||
| 16.01.2025, 22:46 [ТС] | ||
|
Модуль встроен в файл, т.к. ранее это был большой html-файл со скриптом. Далее я решил куски из него вынести в другие файлы - тормозил редактор. Вот 1-ый вынесенный кусок - это и есть то, что попало в файл (2). Может я зря с модулями связался ? Это действительно наиболее удобный инструмент для такой задачи - разделить один большой кусок js-кода в html-файле на несколько файлов js ?
0
|
||
|
1245 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,264
|
|||
| 16.01.2025, 22:54 | |||
|
Добавлено через 1 минуту
1
|
|||
|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
|||||||||||
| 17.01.2025, 21:42 [ТС] | |||||||||||
|
voraa, спасибо!
Правильно ли я в итоге сделал ? Было: в файле ws_chat4.html: 1) html-код. 2) js - объявления глоб. переменные и инициализирующий код, 3) js-функции. Теперь в этом html-файле - только п. 1 и 2, а п.3 я вынес в отдельный файл - ws_chat4_main.js В результате ф-ция из ws_chat4_main.js не видна в html-файле. Выдержки из файлов: файл - ws_chat4.html
но не видит ее и выдает ошибку - см. скриншоты 1 и 2.
0
|
|||||||||||
|
1245 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,264
|
||||||||||||
| 17.01.2025, 22:16 | ||||||||||||
|
Я бы и п 2. вынес в отдельный файл. Какую пользу он в html дает? Раз у вас импорт такой
1
|
||||||||||||
|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
||
| 18.01.2025, 13:46 [ТС] | ||
|
Теперь ясно зачем as... нужно при импорте * ... Глобальные переменные я пока оставил в html-файле, как я понял - они будут видны изо всех модулей и не нужно их явно экспортировать/импортировать. Так пока меньше переделывать надо, хотя может быть и не очень стройное решение.
0
|
||
|
1245 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,264
|
|||||||
| 18.01.2025, 14:17 | |||||||
|
Тогда, да - будут видны в модулях. Раньше вы писали про файл - ws_chat4.html
1
|
|||||||
|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
|||||||
| 18.01.2025, 15:14 [ТС] | |||||||
|
Был единственный скрипт, который задумывался как носитель глобальных переменных. Первоначально в нем не было атрибута type="module".Однако без него import вызывало ошибку в браузере - "Uncaught SyntaxError: import declarations may only appear at top level of a module".Когда я добавил в него type="module" (этот текст Вы и прочитали в моем вопросе),import стал работать нормально, но, действительно, переменные в этом скрипте перестали быть глобальными. ![]() В таком как мне сделать, чтобы и скрипт-не_модуль были в html-файле и ф-ции, вынесенные в другие модули, были видны в этом скрипте-не_модуле ??? Я попытался создать в html-файле 2 скрипта - см. далее. В скрипте2 содержатся и глобальные переменные и код инициализации. Но в нем теперь не видны функции, объявленные в модуле ws_chat_main.js Новая версия структуры html-файла.
0
|
|||||||
|
1245 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,264
|
||||||||||||||||||
| 18.01.2025, 18:06 | ||||||||||||||||||
Сообщение было отмечено LUN2 как решение
РешениеТакое не получится. Вариант только такой. В html обычный скрипт с глобальными переменными, объявленными через var
и в html просто подключить его
1
|
||||||||||||||||||
|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
|
| 18.01.2025, 19:28 [ТС] | |
|
voraa, спасибо!
0
|
|
|
3 / 3 / 0
Регистрация: 15.08.2014
Сообщений: 481
|
||||||
| 19.01.2025, 14:43 [ТС] | ||||||
|
voraa, как в таком случае объявлять обработчики
onclick в теге button ?Например, до реструктуризации в модули, в html-файле было объявление:
ws_chat4_main.js и стала не видна из тега button,т.к. у модуля своя область видимости. Как теперь ее вызывать ? Перенести в скрипт-не_модуль я ее не могу, т.к. ей потребуется вызывать ф-ции модуля. Единственное решение, которое я начитал: вынести ссылку на start() из тега button в код модуля ws_chat4_main.js и установитьобработчик через addEventListener, переделав таким образом, каждую кнопку, т.к. в каждой onclick объявлен в теге button.Это довольно неудобно. Можно ли в теге button как-то указать, что обработчик необходимо брать из модуля ws_chat4_main.js ?
0
|
||||||
|
Молодой техлид)
|
||
| 19.01.2025, 15:23 | ||
|
1
|
||
|
1245 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,264
|
||
| 19.01.2025, 17:32 | ||
|
1
|
||
| 19.01.2025, 17:32 | |
|
Помогаю со студенческими работами здесь
16
Повторная смена картинки и вообще загрузка не работает Как избежать закрытие popup окна? Как избежать написания многочисленных идентичных кусков кода Как избежать смены вида курсора? Как избежать PHP? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|