#javascript #browser #loading
#javascript #браузер #Загрузка
Вопрос:
У кого-нибудь есть хороший способ загрузить файл JS, но отменить его загрузку, если это займет слишком много времени?
Я думаю о чем-то подобном, гипотетически:
<script type="text/javascript" cancel_after="2000" src="myfile.js"></script>
Скрипт — это код, который должен загружаться в head, потому что он заменяет элементы на странице, и поэтому браузеру необходимо блокировать его во время загрузки. Но в случае, если серверу требуется слишком много времени для ответа, я хотел бы иметь возможность запускать браузер без загрузки скрипта.
Комментарии:
1. просто загружайте его, когда страница загружена
Ответ №1:
Используйте предварительный загрузчик. Лично я предпочитаю yepnope, где вы можете легко установить тайм-аут с помощью yepnope.errorTimeout = 2000
Проверьте связанную страницу для получения довольно полной документации yepnope.
Ответ №2:
Вы можете загрузить JavaScript с помощью вызова ajax, а затем использовать eval для запуска его на досуге. В jQuery это выглядело бы примерно так.
$.ajax('test.js', {timeout: 100 /* milliseconds */, success: function(result) {
eval(result);
});
Это некрасиво, и код во включенном JavaScript, возможно, потребуется закодировать по-другому, но это может сделать это за вас.
Ответ №3:
Вы можете поместить его <script></script>
после <body></body>
или загрузить через JS ( document.onload
)
Если вы действительно хотите отменить загрузку, подумайте об использовании функции XMLHTTPRequest
and abort()