2012-05-15 2 views
1

Трудно получить титул прямо на этом.Объект изображения Javascript, повторно использующий ссылочную переменную, отменяет запрос?

Если я использую объект изображения Javascript для отслеживания чего-либо, HTTP-запрос выполняется асинхронно (это не блокирующий вызов), поэтому я всегда был обеспокоен тем, что если я повторно использую переменную, являющуюся ссылкой на объект изображения , Я мог бы заставить запрос быть отмененным. Вот какой код, который мог бы проиллюстрировать мою озабоченность.

var img = new Image(); 
img.src = URL1; //hit server with request 1 
img = new Image(); //re-use the img variable for the next new Image 
img.src = URL2; //and now request 2. Would this cancel request 1 ? 

я могу (и в настоящее время делают) работать вокруг этой потенциальной проблемы, имея массив объектов изображения, и я беру следующий доступный один, и обернуть вокруг на 10. Что-то как это:

var imgs=[], index=0; 
function send(url) { 
    imgs[index] = new Image(); 
    imgs[index++].src = url; 
    if(index>=10)index=0; //wraparound 
} 
send(URL1); 
send(URL2); 

Я знаю, что при повторном использовании объекта img в этом первом примере кода я фактически ничего не делаю с этим исходным объектом изображения, я просто осилю его - уменьшая его количество до нуля и открывая его для мусора коллекция.

Могу ли я найти (в первом примере), что первый запрос был отменен/прерван? Или это всегда будет завершено, только чтобы найти, что по завершении никто не заинтересован?

ответ

0

Вы делаете правильный путь. Если вы хотите узнать, был ли ваш запрос отменен или нет, установите Firebug для своего firefox, затем откройте вкладку net request и посмотрите

+0

Спасибо за этот ответ. К сожалению, этот вопрос отвечает только на один браузер. Я надеюсь на окончательный ответ во всех браузерах. Что-то вроде «запросы никогда не прерываются» :-) – Dee2000