Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

var uploading = false;

console.log(target.url);

target.ondragenter = function(e) {

console. log("dragenter");

if (uploading) return; // Игнорировать попытку сброса, если

// элемент уже занят выгрузкой файла

var types = e.dataTransfer.types;

if (types &&

((types.contains && types.contains("Files")) ||

(types.indexOf && types.index0f("Files”) !== -1))) {

target.classList.add("wantdrop");

return false;

}

};

target.ondragover = function(e) {

if (!uploading) return false;

};

target.ondragleave = function(e) {

if (!uploading) target.classList.remove("wantdrop");

};

target.ondrop = function(e) {

if (uploading) return false;

var files = e.dataTransfer.files;

if (files && files.length) {

uploading = true;

var message = "Выгружаются файлы:<ul>";

for(var і = 0; і < files.length; i++)

message += "<li>" + files[i].name + "</li>";

message += "</ul>";

target.innerHTML = message;

target.classList.remove("wantdrop");

target.classList.add("uploading");

var xhr = new XMLHttpRequest;

xhr.open("POST", url);

var body = new FormData;

for(var i=0; і < files.length; i++)

body.append(i, files[і]);

xhr.upload.onprogress = function(e) {

if (e.lengthComputable) {

target.innerHTML = message +

Math.round(e.loaded/e.total*100) +

"% Завершено";

}

};

xhr.upload.onload = function(e) {

uploading = false;

target.classList.remove("uploading");

target.innerHTML = "Отбуксируйте сюда файл для выгрузки";

};

xhr.send(body);

return false;

}

target.classList. removefwantdrop");

}

}

});

18.1.5. Прерывание запросов и предельное время ожидания

Выполнение HTTP-запроса можно прерывать вызовом метода

abort
объекта
XMLHttpRequest
. Метод
abort
доступен во всех версиях объекта
XMLHttpRequest
, и согласно спецификации «XHR2» вызов метода
abort
генерирует событие «abort». (На момент написания этих строк некоторые броузеры уже поддерживали событие «abort». Наличие этой поддержки можно определить по присутствию свойства
onabort
в объекте
XMLHttpRequest
.)

  • Читать дальше
  • 1
  • ...
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: