Загружает файл Javascript, но отменяет, если это занимает слишком много времени?

#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()