From 980fe00a74a9ad013b945755415ace2e5429c3c2 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 27 Oct 2021 02:31:24 +0300 Subject: [RU] Remove notranslate (#2874) --- .../sending_and_receiving_binary_data/index.html | 20 +++++------ .../xmlhttprequest/using_xmlhttprequest/index.html | 40 +++++++++++----------- .../api/xmlhttprequest/withcredentials/index.html | 2 +- 3 files changed, 31 insertions(+), 31 deletions(-) (limited to 'files/ru/web/api/xmlhttprequest') diff --git a/files/ru/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html b/files/ru/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html index ee92d0ca3e..ebea98c5b5 100644 --- a/files/ru/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html +++ b/files/ru/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html @@ -9,7 +9,7 @@ translation_of: Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data

В этом примере изображение считывается как двоичный файл и создаётся 8-разрядный массив целых чисел без знака из необработанных байтов. Обратите внимание, что это не будет декодировать изображение и читать пиксели. Для этого вам понадобится библиотека декодирования png.

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 oReq.open("GET", "/myfile.png", true);
 oReq.responseType = "arraybuffer";
 
@@ -28,7 +28,7 @@ oReq.send(null);
 
 

Альтернатива вышеуказанному методу использует интерфейс {{domxref("Blob")}} для непосредственного построения Blob с данными arraybuffer.

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 oReq.open("GET", "/myfile.png", true);
 oReq.responseType = "arraybuffer";
 
@@ -42,7 +42,7 @@ oReq.send();
 
 

Также вы можете прочитать двоичный файл как {{domxref ("Blob")}}, установив строку" blob " в свойство responseType.

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 oReq.open("GET", "/myfile.png", true);
 oReq.responseType = "blob";
 
@@ -57,7 +57,7 @@ oReq.send();

Функция load_binary_resource(), показанная ниже, загружает двоичные данные из указанного URL, возвращая их вызывающему объекту.

-
function load_binary_resource(url) {
+
function load_binary_resource(url) {
   var req = new XMLHttpRequest();
   req.open('GET', url, false);
   //XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
@@ -70,7 +70,7 @@ oReq.send();

Магия происходит в строке 5, которая переопределяет тип MIME, заставляя браузер рассматривать его как обычный текст, используя пользовательский набор символов. Это говорит браузеру не анализировать его и пропускать байты через необработанные.

-
var filestream = load_binary_resource(url);
+
var filestream = load_binary_resource(url);
 var abyte = filestream.charCodeAt(x) & 0xff; // throw away high-order byte (f7)
 
@@ -82,7 +82,7 @@ var abyte = filestream.charCodeAt(x) & 0xff; // throw away high-order byte (

Библиотека jBinary для работы с бинарными данными в JavaScript позволяет загрузить данные из любого источника, автоматически определяя лучший способ для этого в текущем браузере или Node.js:

-
jBinary.load(url).then(function (binary) {
+
jBinary.load(url).then(function (binary) {
   // здесь аргумент `binary` может использовться для обработки данных
   // в любом формате (строка, массив байтов, структура данных и т. д.)
 });
@@ -94,7 +94,7 @@ var abyte = filestream.charCodeAt(x) & 0xff; // throw away high-order byte (
 
 

В примере ниже на лету создаётся текстовый файл и отправляется методом POST на сервер. Здесь используется обычный текст, но нетрудно представить себе пример с бинарным файлом.

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 oReq.open("POST", url, true);
 oReq.onload = function (oEvent) {
   // Uploaded.
@@ -109,7 +109,7 @@ oReq.send(blob);
 
 

Точно так же можно отправлять типизированные массивы JavaScript.

-
var myArray = new ArrayBuffer(512);
+
var myArray = new ArrayBuffer(512);
 var longInt8View = new Uint8Array(myArray);
 
 for (var i=0; i< longInt8View.length; i++) {
@@ -133,7 +133,7 @@ xhr.send(myArray);
 
 

В этом примере двоичные данные передаются асинхронно методом POST и нестандартным методом Firefox's sendAsBinary().

-
var req = new XMLHttpRequest();
+
var req = new XMLHttpRequest();
 req.open("POST", url, true);
 // установите заголовок и тип данных
 req.setRequestHeader("Content-Length", 741);
@@ -148,7 +148,7 @@ req.sendAsBinary(aBody);
 
 

Кроме того, чтобы отправить бинарные данные можно передать экземпляр {{interface("nsIFileInputStream")}} в метод send(). В этом случае заголовок Content-Length заполнять явно необязательно, поскольку информация получается из потока автоматически:

-
// Создание потока из файла.
+
// Создание потока из файла.
 var stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
                        .createInstance(Components.interfaces.nsIFileInputStream);
 stream.init(file, 0x04 | 0x08, 0644, 0x04); // file is an nsIFile instance
diff --git a/files/ru/web/api/xmlhttprequest/using_xmlhttprequest/index.html b/files/ru/web/api/xmlhttprequest/using_xmlhttprequest/index.html
index f2628fa1fa..e295b94612 100644
--- a/files/ru/web/api/xmlhttprequest/using_xmlhttprequest/index.html
+++ b/files/ru/web/api/xmlhttprequest/using_xmlhttprequest/index.html
@@ -7,7 +7,7 @@ translation_of: Web/API/XMLHttpRequest/Using_XMLHttpRequest
 
 

Для отправки HTTP-запроса нужно создать XMLHttpRequest-объект, открыть URL и отправить запрос. После выполнения запроса можно получить и обработать тело и статус ответа.

-
function reqListener () {
+
function reqListener () {
   console.log(this.responseText);
 }
 
@@ -54,7 +54,7 @@ oReq.send();

Хотя обычно XMLHttpRequest используется, чтобы получать и загружать текст, с его помощью можно обмениваться и двоичными данными. Есть несколько проверенных способов заставить XMLHttpRequest посылать двоичные данные. Они используют метод  XMLHttpRequest.overrideMimeType().

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 oReq.open("GET", url, true);
 // получаем необработанные данные в виде двоичной строки
 oReq.overrideMimeType("text/plain; charset=x-user-defined");
@@ -63,7 +63,7 @@ oReq.overrideMimeType("text/plain; charset=x-user-defined");
 
 

Спецификация XMLHttpRequest Level 2 добавляет новые атрибуты responseType, значительно облегчающие работу с двоичными данными:

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 
 oReq.open("GET", url, true);
 oReq.responseType = "arraybuffer";
@@ -82,7 +82,7 @@ oReq.send();
 
 

Отслеживание событий процесса загрузки  следует спецификации Web API progress events: эти события реализуют интерфейс {{domxref("ProgressEvent")}}.

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 
 oReq.addEventListener("progress", updateProgress, false);
 oReq.addEventListener("load", transferComplete, false);
@@ -123,7 +123,7 @@ function transferCanceled(evt) {
 
 

События progress есть и у входящих, и у исходящих передач. События входящих передач создаются для объекта XMLHttpRequest, как показано в примере выше; исходящих —для XMLHttpRequest.upload:

-
var oReq = new XMLHttpRequest();
+
var oReq = new XMLHttpRequest();
 
 oReq.upload.addEventListener("progress", updateProgress, false);
 oReq.upload.addEventListener("load", transferComplete, false);
@@ -147,7 +147,7 @@ oReq.open();
 
 

Также возможно засечь все три события, завершающие загрузку (abort, load, or error) через событие loadend:

-
req.addEventListener("loadend", loadEnd, false);
+
req.addEventListener("loadend", loadEnd, false);
 
 function loadEnd(e) {
   alert("Передача данных завершена (но мы не знаем, успешно ли).");
@@ -188,14 +188,14 @@ function loadEnd(e) {
  
  • Метод: POST; тип кодирования: application/x-www-form-urlencoded (по умолчанию):

    -
    Content-Type: application/x-www-form-urlencoded
    +  
    Content-Type: application/x-www-form-urlencoded
     
     foo=bar&baz=The+first+line.&#37;0D%0AThe+second+line.%0D%0A
  • Метод: POST; тип кодирования: text/plain:

    -
    Content-Type: text/plain
    +  
    Content-Type: text/plain
     
     foo=bar
     baz=The first line.
    @@ -222,14 +222,14 @@ The second line.
     
     

    Instead, if you are using the GET method, a string like the following will be simply added to the URL:

    -
    ?foo=bar&baz=The%20first%20line.%0AThe%20second%20line.
    +
    ?foo=bar&baz=The%20first%20line.%0AThe%20second%20line.

    Небольшой классический фреймворк

    Все данные эффекты достигаются с помощью веб браузера, когда вы отправляете {{ HTMLElement("form") }}. Но если вам требуется выполнить все операции с помощью лишь JavaScript, то вам придётся проинструктировать интерпретатор обо всех выполняемых операциях. Для, того чтобы отправлять формы с помощью чистого AJAX, потребуется слишком комплексное описание, чтобы тут рассуждать о нем во всех подробностях. В связи с этим, мы опубликовали здесь полный(но все ещё дидактический) фреймворк, который всё же способен использовать все четыре способа отправки и, так же поддерживает файловую загрузку.

    -
    <!doctype html>
    +
    <!doctype html>
     <html>
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    @@ -475,7 +475,7 @@ var AJAXSubmit = (function () {
     
     

    Для того, чтобы произвести его тест, создайте страницу с названием register.php (и укажите атрибут action одной из данных форм) и добавьте данный минимальный контент

    -
    <?php
    +
    <?php
     /* register.php */
     
     header("Content-type: text/plain");
    @@ -502,7 +502,7 @@ print_r($_FILES);
     
     

    Синтаксис данного скрипта представлен ниже:

    -
    AJAXSubmit(myForm);
    +
    AJAXSubmit(myForm);
    Примечание: Данный фреймворк использует FileReader API для передачи загрузочных файлов. Это новый API и его невозможно использовать IE9 и ниже. В связи с этим, загрузки только с использованием AJAX воспринимаются, лишь как экспериментальные. Если вам не требуется загружать бинарные файлы, то данный фреймворк работает в большинстве современных браузерах.
    @@ -515,7 +515,7 @@ print_r($_FILES);

    The FormData constructor lets you compile a set of key/value pairs to send using XMLHttpRequest. Its primarily intended for use in sending form data, but can be used independently from forms in order to transmit keyed data. The transmitted data is in the same format that the form's submit() method would use to send the data if the form's encoding type were set to "multipart/form-data". FormData objects can be utilized in a number of ways with an XMLHttpRequest. For examples and explanations of how one can utilize FormData with XMLHttpRequests see the Using FormData Objects page. For didactic purpose only we post here a translation of the previous example transformed so as to make use of the FormData API. Note the brevity of the code:

    -
    <!doctype html>
    +
    <!doctype html>
     <html>
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    @@ -636,7 +636,7 @@ function AJAXSubmit (oFormElement) {
     
     

    Получить дату последнего изменения

    -
    function getHeaderTime () {
    +
    function getHeaderTime () {
       alert(this.getResponseHeader("Last-Modified"));  /* A valid GMTString date or null */
     }
     
    @@ -649,7 +649,7 @@ oReq.send();

    Let's create these two functions:

    -
    function getHeaderTime () {
    +
    function getHeaderTime () {
     
       var
         nLastVisit = parseFloat(window.localStorage.getItem('lm_' + this.filepath)),
    @@ -673,7 +673,7 @@ function ifHasChanged(sURL, fCallback) {
     
     

    Test:

    -
    /* Let's test the file "yourpage.html"... */
    +
    /* Let's test the file "yourpage.html"... */
     
     ifHasChanged("yourpage.html", function (nModif, nVisit) {
       alert("The page '" + this.filepath + "' has been changed on " + (new Date(nModif)).toLocaleString() + "!");
    @@ -689,7 +689,7 @@ ifHasChanged("yourpage.html", function (nModif, nVisit) {
     
     

    Для кросс-браузерного обхода кеширования в конец URL-запроса достаточно добавить случайную строку в GET-параметры, то есть сразу после «?», например:

    -
    http://foo.com/bar.html -> http://foo.com/bar.html?12345
    +
    http://foo.com/bar.html -> http://foo.com/bar.html?12345
     http://foo.com/bar.html?foobar=baz -> http://foo.com/bar.html?foobar=baz&12345
     
    @@ -697,7 +697,7 @@ http://foo.com/bar.html?foobar=baz -> http://foo.com/bar.html?foobar=baz&

    Автоматизировать этот подход можно следующим сниппетом:

    -
    var oReq = new XMLHttpRequest();
    +
    var oReq = new XMLHttpRequest();
     
     oReq.open("GET", url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime(), true);
     oReq.send(null);
    @@ -718,12 +718,12 @@ oReq.send(null);

    Instantiating XMLHttpRequest from a JavaScript module or an XPCOM component works a little differently; it can't be instantiated using the XMLHttpRequest() constructor. The constructor is not defined inside components and the code results in an error. The best way to work around this is to use the XPCOM component constructor.

    -
    const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
    +
    const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
     

    Unfortunately in versions of Gecko prior to Gecko 16 there is a bug which can cause requests created this way to be cancelled for no reason.  If you need your code to work on Gecko 15 or earlier, you can get the XMLHttpRequest constructor from the hidden DOM window like so.

    -
    const { XMLHttpRequest } = Components.classes["@mozilla.org/appshell/appShellService;1"]
    +
    const { XMLHttpRequest } = Components.classes["@mozilla.org/appshell/appShellService;1"]
                                          .getService(Components.interfaces.nsIAppShellService)
                                          .hiddenDOMWindow;
     var oReq = new XMLHttpRequest();
    diff --git a/files/ru/web/api/xmlhttprequest/withcredentials/index.html b/files/ru/web/api/xmlhttprequest/withcredentials/index.html index 6926b01f82..02d872e437 100644 --- a/files/ru/web/api/xmlhttprequest/withcredentials/index.html +++ b/files/ru/web/api/xmlhttprequest/withcredentials/index.html @@ -25,7 +25,7 @@ translation_of: Web/API/XMLHttpRequest/withCredentials

    Пример

    -
    var xhr = new XMLHttpRequest();
    +
    var xhr = new XMLHttpRequest();
     xhr.open('GET', 'http://example.com/', true);
     xhr.withCredentials = true;
     xhr.send(null);
    -- cgit v1.2.3-54-g00ecf