>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >XMLHttpRequest: responseType = "document" http://forum.mozilla-russia.org/viewtopic.php?id=54344 |
homo_nudus > 27-03-2012 15:03:30 |
Не мог бы кто-нибудь из знатоков ответить здесь или на хабре? |
hydrolizer > 27-03-2012 19:48:13 |
На хабре у меня учетки нет, поэтому отвечаю здесь: с чего бы это вдруг XMLHttpRequest вдруг взял на себя функции браузера по части отработки скриптов? А если в том примере будет в onload setTimeout в с тайм-аутом в 10 минут - XMLHttpRequest должен будет подождать эти 10 минут, отработать скрипт, и выдать полученное? Этот объект предназначен только для передачи данных:
загрузка, парсинг, и отработка скриптов - это функция браузера, каковым XMLHttpRequest не является. |
homo_nudus > 27-03-2012 20:33:36 |
hydrolizer |
hydrolizer > 28-03-2012 06:25:17 |
homo_nudus пишет
Вполне логична - она целиком соответствует концепции XMLHttpRequest: передает пользователю именно данные, но уже распарсенные в DOM. Я, конечно, понимаю, что хочется, чтобы нововведения разом решали все проблемы, и удовлетворяли все пожелания, но увы - в данном случае пожелания автора той заметки на хабре выходят за рамки Выделить код Код:get defaultFavicon() { var defUri=Services.io.newURI("chrome://mozapps/skin/places/defaultFavicon.png", null, null); var mime=Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService).getTypeFromURI(defUri); var xhr=Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpRequest); xhr.open("GET", defUri.spec, false); xhr.responseType="arraybuffer"; xhr.send(null); return "data:" + mime + ";base64," + this.toBase64(new Uint8Array(xhr.response)); } В асинхронном запросе такая схема получения работает, но если значение, возвращаемое вышеприведенным кодом (например), нужно получить где-то в начале-середине исполняемого кода, то тут начинается возня с коллбэками, псевдопараллельный код, и проч. - это просто неудобно. |
homo_nudus > 28-03-2012 07:38:48 |
hydrolizer |