|
Maksim
|
|
Динамическое подключения файлов со скриптами?12.03.2008, 21:34. Показов 5675. Ответов 25
Метки нет (Все метки)
Короче, для ускорения загрузки страниц, делаю следующее:
<script id=scr1></script> <script> function LoadScript(){ if (scr1.src.length==0) scr1.src='my_script.js' setTimeout(MyMethod()); } </script> <input type=button onclick='LoadScript()' value='Exec MyMethod()'> Функция MyMethod() находится в файле my_script.js... При открытии страницы файл не загружается, а загружается только после нажатия на кнопку... Возможно в зависимости от версий браузера подгружать разные файлы, при отсутствии необходимости выполнять скрипт не загружать вообще. В общем, идея думаю понятна. Тестирую, вроде работает. Но при работе большого приложения, где используются множественные операции с использованием setTimeout(), иногда, (заостряю внимание, ИНОГДА, не всегда), происходят сбои... При вызове метода файл видимо еще не загружен. Вызываемой функции еще не существует... Может кто знает, как бороться с этим? |
|
| 12.03.2008, 21:34 | |
|
Ответы с готовыми решениями:
25
Ошибка подключения файлов Система подключения файлов Порядок подключения файлов |
|
Maksim
|
|
| 17.03.2008, 12:22 | |
|
А можно еще поставить проверку, загружен ли в конечном скрипт или нет.
Что-то вроде: function openIt(){ if (typeof(openCalendar)=='function') openCalendar(obj); else if (scr1.src.length != 0) alert('Script can not be loaded!'); } И как думаешь, разумно в данном случае использовать событие onreadystatechange? 'Fires when the state of the object has changed' Что в данном случае следует понимать под 'the state of the object'? |
|
|
Maksim
|
|
| 17.03.2008, 12:48 | |
|
А с setTimout, и тем более счетчиками при этом, мне идея почему-то жутко не нравится....
Было бы идеально, если бы можно было обработать событие onload для скрипта. Но не работает... Почему? Нет никаких мыслей? |
|
|
4 / 4 / 5
Регистрация: 10.05.2007
Сообщений: 1,616
|
|
| 17.03.2008, 18:12 | |
|
По поводу SCRIPT ONLOAD, если посмотреть на спецификации HTML 4.01 и в частности тега <SCRIPT>, то выяснится что атрибута такого нет у тега.
http://web3.w3.org/TR/html4/interact/scripts.html Вероятно, он присутствует только в IE и то судя по примеру в MSDN поведение у него мягко говоря не такое, как ожидается. Видимо там имеется ввиду все таки EVENT=ONLOAD, а в документацию по тегу SCRIPT он случайно попал или по ошибке.
0
|
|
|
Maksim
|
|
| 17.03.2008, 18:32 | |
|
По поводу EVENT='...' ты все-таки путаешь...
Любой Event можно присвоить таким образом. Для любого события есть три способа присвоения: Inline HTML : <TAG onclick='...'> Scripting : object.onclick = ... ну и этот самый способ: Named script: <SCRIPT FOR = object EVENT = onclick> Посмотри в MSDN любое событие. Onload в данном случае ничем не отличается от других... А то что он не работает, скорее какой-то глюк. А по поводу 'onreadystatechange', как думаешь, разумно использовать? |
|
|
Maksim
|
|
| 17.03.2008, 19:26 | |
|
<html>
<script> function openIt(){ if (typeof(openCalendar)=='function') openCalendar(obj); else if (scr1.src.length != 0) alert('Script can not be loaded!'); } </script> <script id=scr1 onreadystatechange='openIt()'> </script> <body leftMargin=200> <input id=obj type=text> <input type=button onclick='if (scr1.src.length==0) scr1.src='http://max.far.ru/calendar.js' else openIt();' value='...'></DIV> </body> </html> |
|
|
4 / 4 / 5
Регистрация: 10.05.2007
Сообщений: 1,616
|
|
| 18.03.2008, 11:23 | |
|
Я знаю, что можно любое событие повесить на EVENT, именно поэтому и говорю, что в MSDN этот атрибут для SCRIPT попал по ошибке.
Что касается onreadystatechange, то думаю что вполне допустимо использовать раз работает.
0
|
|
| 18.03.2008, 11:23 | |
|
Ошибка подключения .h файлов
Динамическое создание файлов. Подключения файлов с другим расширением Ошибки подключения файлов и БД mysql Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
alhaos 16.06.2026
Insert Delete GetRandom O(1)
Сложность: Medium
Источник: LeetCode 380
Задача
Реализовать структуру данных RandomizedSet, которая поддерживает следующие операции за O(1) в среднем:
|
Свет в конце тоннеля
kumehtar 16.06.2026
Поймал себя на одной мысли.
Раньше мне всегда казалось неправильным жить без чёткого понимания, куда всё идёт. Будто я иду по дороге судьбы, но не знаю, куда она ведёт. А раз не знаю — значит,. . .
|
[golang] Реализация стека с поддержкой получения минимального элемента за O(1)
alhaos 16.06.2026
Min Stack
Сложность: Medium
Источник: LeetCode 155
Задача:
Реализовать стек который поддерживает push, pop, top и получение минимального элемента за O(1).
Методы:
|
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача
Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Сигнатура
func Fetch(urls string, maxConcurrent int) Result
Пример
urls :=. . .
|
|
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition)
Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|