Подгрузился ли файл
При работе сайта динамически подгружаю js
var js = document.createElement('script'); js.setAttribute('src', link); js.setAttribute('type', 'text/javascript'); document.getElementsByTagName('head')[0].appendChild(js); После этого надо выполнить функцию из файла, не срабатывает, но если перед вызовом функции поставить alert(), выигрыется время пока я окошко закрою и фйл подгрузится, как сделать так чтобы JS переходил в функции только после загрузки файла? Просьба не предлогать решение вызов функции в подгружаемом файле |
function loadScripts( src, callback ) { var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); req.onreadystatechange = function() { if ( this.readyState == 4 && this.status == 200 ) { var script = document.createElement("script"); script.onload = script.onreadystatechange = function( e ){ if ( ( !this.readyState || this.readyState == "loaded" || this.readyState == "complete" ) ) { this.onreadystatechange = this.onload = null; callback(); } }; script.src = src; var head = document.getElementsByTagName( "head" )[ 0 ]; head.appendChild( script ); } } req.open( "GET", src, true ); req.send( null ); } loadScripts( link, function(){ alert("loaded"); }); Работает только в пределах своего домена. |
если нужно из удаленки, то удалите строки 3,4,5,16,17,18,19 но в ИЕ будет работать не корректно, ибо даже если не существующий файл если подставить, то ИЕ все равно выдаст loaded
|
нет из удаленки не нужно, спасибо большое
|
Возник вопрос когда я делаю
req.open( "GET", src, true );браузер будет смотреть на кеш? Тоесть проверит ли по заголовкам закеширован ли этот файл или 100% отправит запрос? |
|
Internet Explorer кеширует GET-запросы.
В статье написано что кеширует, а другие браузеры кешируют? У меня сервер прописывает что надо кешировать, я к тому что перед тем как послать запрос браузеры проверят кеш? |
Часовой пояс GMT +3, время: 19:11. |