powered by simpleCommunicator - 21.11.28     © 2024 Programmizd 02
Map
Форумы / Вопросы по IT / Jwt JavaScript, Поиск: Искать сообщения, созданные автором: Программизд 02  
22 сообщений из 22, страница 1 из 1
Вопросы по IT / Jwt JavaScript
    #2786642
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
или в browser storage.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2787780
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  16.02.2021, 18:47
Программизд 02  16.02.2021, 15:53
или в browser storage.
Меня в данном случае волнует безопасность. Ку-ку могут угнать? И как для этого должны звёзды сложиться?
Могут. И сторидж могут. Если контроль над компом и браузером получат.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2830156
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  02.03.2021, 14:18
А потом из обработчика нифига не вызывает.
Из какого не вызывает? На success и error есть события. Чего не хватает?
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2840182
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  05.03.2021, 19:12
Тут по идее herr.object1 должен быть уже не null.
Где тут? После var herr = new her()?

Нет не должен. После вызова он null потому что тут
Код: JavaScript
1.
2.
3.
4.
this.hermethod = function ()
{
  object1 = new HerObject();
}
ты не вызываешь метод а лишь определяешь его.

А вот когда дернул метод

herr.hermethod();

То пошла инициализация.
Цитата 
А если внутри другого метода her к нему обратиться, то он снова не null.
Потому что тут

object1 = new HerObject();

ты инициализурешь глобальный объект а не локальный.

обычный лайвхак при смене скоупа у явасриптеров это
Код: JavaScript
1.
2.
3.
4.
5.
var me = this;
this.hermethod = function ()
{
  me.object1 = new HerObject();
}
...
Изменено: 05.03.2021, 19:58 - Программизд 02
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2840192
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
И вот держи от основы и вся мощь ООП JS в паре строчек от деды:)

Без всяких говнофреймворков и тайпскриптов.
Код: JavaScript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
//-------------------------
// Вспомогательная функция
//-------------------------

var mixInInterfaces = function (target_class) {
    var mixins = Array.prototype.slice.call(arguments, 1);
    for (let i = 0; i < mixins.length; ++i) {
        for (let prop in mixins[i]) {
            if (typeof target_class[prop] === "undefined") {
                target_class[prop] = mixins[i][prop];
            }
        }
    }
};

//-------------------------
// Interface SleepInterface
//-------------------------

var SleepInterface = function () {
}

SleepInterface.prototype.sleep = function () {
  console.log("I am sleeping");
}

//-------------------------
// Interface EatInterface
//-------------------------

var EatInterface = function () {
}

EatInterface.prototype.eat = function () {
  console.log("I am eating");
}

//-------------------------
// Class UserClass
//-------------------------

var UserClass = function(first_name, last_name) {
  this.first_name = first_name;
  this.last_name = last_name;
}

UserClass.prototype.constructor = UserClass;

UserClass.prototype.getFullInfo = function () {
  return this.first_name + " " + this.last_name;
};

//-------------------------
// Класс WorkerClass наследует от UserClass
//-------------------------

WorkerClass = function (first_name, last_name, profession) {
    UserClass.call(this, first_name, last_name);

    this.profession = profession;
};

WorkerClass.prototype = Object.create(UserClass.prototype);
WorkerClass.prototype.constructor = WorkerClass;

//-------------------------
// Класс WorkerClass реализует интерфесы SleepInterface и EatInterface
//-------------------------

mixInInterfaces(WorkerClass.prototype, SleepInterface.prototype, EatInterface.prototype);

//-------------------------
// Переопределяем метод getFullInfo
//-------------------------

WorkerClass.prototype.getFullInfo = function () {
  return this.first_name + " " + this.last_name + ", " + this.profession;
};

//-------------------------
// Класс VeganClass наследует от UserClass
//-------------------------

VeganClass = function (first_name, last_name) {
    UserClass.call(this, first_name, last_name);
};

VeganClass.prototype = Object.create(UserClass.prototype);
VeganClass.prototype.constructor = VeganClass;

//-------------------------
// Класс VeganClass реализует интерфесы SleepInterface и EatInterface
//-------------------------

mixInInterfaces(VeganClass.prototype, SleepInterface.prototype, EatInterface.prototype);

//-------------------------
// Переопределяем метод интерфейса eat
//-------------------------

VeganClass.prototype.eat = function () {
  console.log("I am a vegan, I am eating only vegetables!");
};

//-------------------------
// Использование
//-------------------------

var user1 = new UserClass("Alex", "Smith");
var user2 = new WorkerClass("Anna", "Connor", "Developer");
var user3 = new VeganClass("Robert", "Bush");

console.log("user1: " + user1.getFullInfo());

console.log("user2: " + user2.getFullInfo());
user2.sleep();
user2.eat();

console.log("user3: " + user3.getFullInfo());
user3.sleep();
user3.eat();
Результат
Код
1.
2.
3.
4.
5.
6.
7.
user1: Alex Smith
user2: Anna Connor, Developer
I am sleeping
I am eating
user3: Robert Bush
I am sleeping
I am a vegan, I am eating only vegetables!
...
Изменено: 05.03.2021, 19:53 - Программизд 02
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2840289
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  05.03.2021, 20:05
Эбанутый язык. Вообще. А прототип то ещё извращение.
Главное из ООП делает и на том спасибо. Но конструкции да эбанутые:) Как и лайвхак var me = this!

Но все это как обычно имеет истоирческие причины. На заре html был предназначен для верстки и типографии. Прикрутили яваскрипт и cgi наспех. Это распространилось и теперь приходится жить с таким яваскриптом.

А минипример основных моментов ООП, меня за него новички на руках носят:) Пока ты сам это всё найдешь в документации пройдет немало дней. А тут бери и пользуйся для своих классов и интерфейсов.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2840328
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  05.03.2021, 20:14
Но нет же нифига ни средств отладки нормальных, ни мониторинга. В руководствах в интернетике так и пишут пишите в консоль....
А дебаггер встреонный в FF и хром? Там есть

брейкпоинты и пошаговый дебаггинг
проверка текущих значений переменных

Но в общем да, иногда влом заморачиваться. Просто в консоль вываливаешь и все:)
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2848607
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  09.03.2021, 13:22
Программизд 02 скажи в интернете же не врут, что синтаксис class теперь во всех основных браузерах поддерживают. А то я находил 2 прямо противоположные ссылки.
Не разбирался в каких поддерживает. Увы, приходится поддерживать и старенькие браузеры. Так что ни let, ни стрелочные фнкции, ни новый синтаксис мне использовать нельзя.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2849399
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
i see  09.03.2021, 15:59
Программизд 02  09.03.2021, 13:25
WildMage  09.03.2021, 13:22
...
Не разбирался в каких поддерживает. Увы, приходится поддерживать и старенькие браузеры. Так что ни let, ни стрелочные фнкции, ни новый синтаксис мне использовать нельзя.
Babel там никак не прикрутить?
Можно навреное. Но мы пока не щупали. К полифилам иногда прибегали.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2875297
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
Нет. Не сталкивался.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2889426
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  24.03.2021, 15:03
Дет, ты знаешь в каких случаях Аякс json на выходе конвертит в объект, а в каких в виде строки отдает?
О какой именно функции идет речь?

Предполагаю что если он входные данные не может сконвертить в json то оставляет их как есть
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2889483
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
Этим не пользовался. Нужно смотреть внутренности или доку. Видимо как я предполагаю, оставляет как есть если не может сконверить
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2894040
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
npm - это nodejs package manager

Утилита позволяющая гибко импортировать небоходимы js библиотеки в твой проект

Нужные тебе библиотеки нужно прописать в файле

package.json

и npm их подтянет а также поттянет те библитокеи которые нужны для исходных бибоитек и так в глубь рекурсивно.

https://www.tutorialspoint.com/nodejs/nodejs_npm.htm
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2923022
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
Может ей нужен дом объект а не строка?
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2923031
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
Может empty как то вредит. Может html код не верен. Ты потестируй добавляя другие варианты.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #2923055
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage 

Рассказывай. Так код выглядит ок.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #3191722
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  12.08.2021, 10:36
Как сделать панельку, стобы когда при скролировании она вверх экрана прицеплялась?
Можно разместить панельку сразу прикрепленной position: fixed

Или навесить функцию на событие скролла и там в зависимости от позиции сролла динамически менять у рамнки на position: fixed
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #3191772
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  12.08.2021, 11:06
Программизд 02  12.08.2021, 10:59
WildMage  12.08.2021, 10:36
...
Можно разместить панельку сразу прикрепленной position: fixed

Или навесить функцию на событие скролла и там в зависимости от позиции сролла динамически менять у рамнки на position: fixed
При позишн фиксед у меня нижний див наезжает сверху и я не знаю как это побороть.
zIndex
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #3191871
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  12.08.2021, 11:33
Программизд 02  12.08.2021, 10:59
WildMage  12.08.2021, 10:36
...
Можно разместить панельку сразу прикрепленной position: fixed

Или навесить функцию на событие скролла и там в зависимости от позиции сролла динамически менять у рамнки на position: fixed
По второму пункту я нагуглил как. Но хотелось бы обойтись без скриптов в этом месте. Только цсс
Вряд ли получится.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #3232495
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  02.09.2021, 05:31
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
Только самому их отслеживать и в цикле проверять running или нет.
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #3232637
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  02.09.2021, 10:34
Программизд 02  02.09.2021, 09:44
WildMage  02.09.2021, 05:31
...
Только самому их отслеживать и в цикле проверять running или нет.
Короче для твоего просвещения. Если при аякс запросе указать global:false, то обработчики сверху не будут вызывать.
ЗЫ. Что-то жестко туплю. Недосып сказывается.
Это ты jquery подразумевал? :) А я то о нативных XMLHttpRequest говорил.

У меня своя реализация. Юзаю много лет. Надежна как топор.
Код: JavaScript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
/*
Usage example:

function send_post_request()
{
  var ajax = new JR.AJAX();

  ajax.timeout = 10000; // 10 seconds

  ajax.beforestart = function()
  {
    console.log("ajax beforestart");
  };

  ajax.aftercomplete = function(error)
  {
    if(!error)                    console.log("ajax complete with success");
    else if(error == 'UserAbort') console.log("ajax complete with user abort");
    else                          console.log("ajax complete with error: " + error);
  };

  ajax.onload = function(text, xml)
  {
    console.log("ajax success: " + text);
  };

  ajax.onerror = function(error, url, info)
  {
    console.log("ajax error: " + error);
  };

  ajax.setPOST('some_param', "380");
  ajax.setPOST('another_param', "400");

  ajax.request("process.php");
}

function send_get_request()
{
  var ajax = new JR.AJAX();

  ajax.timeout = 10000; // 10 seconds

  ajax.onload = function(text, xml)
  {
    console.log("ajax success: " + text);
  };

  ajax.onerror = function(error)
  {
    console.log("ajax error: " + error);
  };

  ajax.setGET('some_param', "380");
  ajax.setGET('another_param', "400");

  ajax.request("process.php");
}

function send_form_per_ajax()
{
  var ajax = new JR.AJAX();

  ajax.timeout = 10000; // 10 seconds

  ajax.onload = function(text, xml)
  {
    console.log("ajax success: " + text);
  };

  ajax.onerror = function(error)
  {
    console.log("ajax error: " + error);
  };

  var form = document.getElementById('my_form');

  var formData = new FormData(form);
  formData.append('some_param', "380");
  formData.append('another_param', "400");

  ajax.setFormData(formData);

  ajax.request(form.action);
}
*/

//----------------------------------------------------------------------
JR = {};
//----------------------------------------------------
JR.isEmptyObject = function(obj)
{
  for(var prop in obj)
  {
    if(Object.prototype.hasOwnProperty.call(obj, prop))
    {
      return false;
    }
  }

  return true;
}; // isEmptyObject
//----------------------------------------------------
JR.AJAX = function() {
  // Overridable events

  this.onload  = null;
  this.onerror = null;
  this.beforestart = null;
  this.aftercomplete = null;

  this.error_reported = false;
  this.aftercomplete_reported = false;

  this.running = false;

  this.debug = false;

  this.last_url = '';
  this.name = '-';

  this.timeout = 30000;

  // Arrays for GET and POST parameters

  this.GET  = new Array();
  this.POST = new Array();
  this.FORM_DATA = null;
  this.RAW_DATA = null;
  this.headers = new Array();

  // Timeout handle, for calling clearTimeout

  this.TIMEOUT_HANDLE = null;

  // Initialize

  this.XHR = new XMLHttpRequest();
}; // constructor
//----------------------------------------------------------------------
JR.AJAX.prototype.formDataFileFix = function(formData) {
  if(typeof formData.keys == 'undefined') return;

  try {
        if (formData.keys) {
            var formKeysToBeRemoved = [];

            var keyIterator = formData.keys();

            var item = keyIterator.next();

            while (!item.done) {
                var key = item.value;

                var fileName = null || formData.get(key)['name'];
                var fileSize = null || formData.get(key)['size'];
                if (fileName != null && fileSize != null && fileName == '' && fileSize == 0) {
                    formKeysToBeRemoved.push(key);
                }

                item = keyIterator.next();
            }

            for (var i = 0; i < formKeysToBeRemoved.length; i++) {
                formData.delete(formKeysToBeRemoved[i]);
            }
        }
    }
    catch(err) {
    }
} // formDataFileFix
//----------------------------------------------------------------------
JR.AJAX.prototype.resetParams = function()
{
  this.GET  = new Array();
  this.POST = new Array();
  this.FORM_DATA = null;
  this.RAW_DATA = null;
  this.headers = new Array();
};
//----------------------------------------------------------------------
JR.AJAX.prototype.setHeader = function(header, value)
{
  this.headers[header] = value;
};
//----------------------------------------------------------------------
JR.AJAX.prototype.setGET = function(vname, value)
{
  this.GET[vname] = value;
};
//----------------------------------------------------------------------
JR.AJAX.prototype.setPOST = function(vname, value)
{
  this.POST[vname] = value;
};
//----------------------------------------------------------------------
JR.AJAX.prototype.setFormData = function(formData)
{
  this.FORM_DATA = formData;
};
//----------------------------------------------------------------------
JR.AJAX.prototype.setRawData = function(rawData)
{
  this.RAW_DATA = rawData;
};
//----------------------------------------------------------------------
JR.AJAX.prototype.abort = function()
{
  if(this.debug) debug_line(this.name + ': AJAX Request aborted ' + (this.running ? '(was running)' : 'was not running'));

  if(!this.running) return;

  // Aborting fires the event onreadystatechange
  // as if the server did not respond.
  // To prevent unnecssary error messages, we set
  // error_reported to true.

  this.error_reported = true;

  if(this.TIMEOUT_HANDLE)
  {
    clearTimeout(this.TIMEOUT_HANDLE);
    this.TIMEOUT_HANDLE = null;
  }

  this.running = false;
  this.XHR.abort();

  if(!this.aftercomplete_reported && this.aftercomplete !== null)
  {
    this.aftercomplete_reported = true;
    this.aftercomplete('UserAbort');
  }
};
//----------------------------------------------------------------------
JR.AJAX.prototype.request = function(file)
{
  if(this.debug) debug_line(this.name + ': AJAX Request started');

  this.aftercomplete_reported = false;
  this.error_reported = false;
  this.running = true;

  var v;
  var post;

  this.XHR.abort(); // Close any other connections
  if(this.TIMEOUT_HANDLE)
  {
    clearTimeout(me.TIMEOUT_HANDLE);
    this.TIMEOUT_HANDLE = null;
  }

  this.last_url = file;

  if(!JR.isEmptyObject(this.GET))
  {
    if(this.last_url.indexOf("?") == -1) this.last_url += "?";
    else                                 this.last_url += "&";

    for(v in this.GET)
    {
      if(!Object.prototype.hasOwnProperty.call(this.GET, v)) continue;

      this.last_url += encodeURIComponent(v) + "=" + encodeURIComponent(this.GET[v]) + "&";
    }
  }

  if(this.beforestart !== null)
  {
    this.beforestart();
  }

  if(this.FORM_DATA != null)
  {
    this.formDataFileFix(this.FORM_DATA);

    this.XHR.open("POST", this.last_url, true);

    post = this.FORM_DATA;
  }
  else if(this.RAW_DATA != null)
  {
    this.XHR.open("POST", this.last_url, true);

    post = this.RAW_DATA;
  }
  else if(!JR.isEmptyObject(this.POST))
  {
    this.XHR.open("POST", this.last_url, true);

    post = "";

    for(v in this.POST)
    {
      if(!Object.prototype.hasOwnProperty.call(this.POST, v)) continue;

      post += v + "=" + encodeURIComponent(this.POST[v]) + "&";
    }
  }
  else
  {
    this.XHR.open("GET", this.last_url, true);
    post = null;
  }

  // For the IE, this should be done after open(),
  // otherwise it is not called.
  // It works in other browsers OK!
  // I spent hours to find out why the IE does not fire this event.

  var me = this;

  this.XHR.onreadystatechange = function()
  {
    if(!me) return;

    if(this.readyState == 4)
    {
      if(me.debug)
      {
        debug_line(me.name + ': AJAX Request ended (readyState:' + this.readyState + ', status:' + this.status + ', statusText:' + this.statusText + ')');
      }

      if(me.TIMEOUT_HANDLE)
      {
        clearTimeout(me.TIMEOUT_HANDLE);
        me.TIMEOUT_HANDLE = null;
      }

      me.running = false;

      if(this.status == 200)
      {
        // sucess
        if(me.onload !== null) me.onload(this.responseText, this.responseXML);

        if(me.aftercomplete !== null) me.aftercomplete(null);
      }
      else
      {
        var error = '';
        var info = {};

        info.status = this.status;

        if(this.statusText == '')
        {
          error = 'NoResponse';
        }
        else
        {
          error = this.statusText;
        }

        if(!me.error_reported && me.onerror !== null)
        {
          me.error_reported = true;
          me.onerror(error, me.last_url, info);
        }

        if(!me.aftercomplete_reported && me.aftercomplete !== null)
        {
          me.aftercomplete_reported = true;
          me.aftercomplete(error);
        }
      }
    }
    else
    {
      if(me.debug)
      {
        debug_line(me.name + ': AJAX Request state (readyState:' + this.readyState + ', status:' + this.status + ', statusText:' + this.statusText + ')');
      }
    }
  };

  // native timeout

  this.XHR.ontimeout = function()
  {
    if(!me) return;

    if(me.debug) debug_line(me.name + ': AJAX Request aborted due to the internal timeout');

    if(me.TIMEOUT_HANDLE)
    {
      clearTimeout(me.TIMEOUT_HANDLE);
      me.TIMEOUT_HANDLE = null;
    }

    me.running = false;

    var info = {};
    info.timeout = me.timeout;

    if(!me.error_reported && me.onerror !== null)
    {
      me.error_reported = true;
      me.onerror('Timeout', me.last_url, info);
    }

    if(!me.aftercomplete_reported && me.aftercomplete !== null)
    {
      me.aftercomplete_reported = true;
      me.aftercomplete('Timeout');
    }
  };

  // debug event

  this.XHR.onprogress = function(event)
  {
    if (event.lengthComputable)
    {
      if(me.debug) debug_line(me.name + ': AJAX Request progress - ' + Math.round(100 * event.loaded / event.total) + '%');
    }
  };

  this.XHR.timeout = parseInt(me.timeout) + 5000;

  for(h in this.headers)
  {
    this.XHR.setRequestHeader(h, this.headers[h]);
  }

  this.XHR.send(post);

  // Reset params

  this.resetParams();

  // if the native timeout handling fails

  this.TIMEOUT_HANDLE = setTimeout(function()
                                   {
                                     if(!me) return;

                                     if(me.debug) debug_line(me.name + ': AJAX Request aborted due to the timeout handler');

                                     var info = {};
                                     info.timeout = me.timeout;

                                     if(!me.error_reported && me.onerror !== null)
                                     {
                                       me.error_reported = true;
                                       me.onerror('Timeout', me.last_url, info);
                                     }

                                     if(!me.aftercomplete_reported && me.aftercomplete !== null)
                                     {
                                       me.aftercomplete_reported = true;
                                       me.aftercomplete('Timeout');
                                     }

                                     me.running = false;
                                     me.XHR.abort();
                                   }, me.timeout);
};
//----------------------------------------------------------------------
...
Рейтинг: 0 / 0
Вопросы по IT / Jwt JavaScript
    #3594560
Программизд 02
Скрыть профиль Поместить в игнор-лист
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage [игнорируется] 

Вроде можно.
Код: JavaScript
1.
2.
3.
4.
5.
6.
7.
function foo() {
  for (var i = 0; i < arguments.length; i++) {
    console.log(arguments[i]);
  }
}

foo(1, 2, "Sasha", true);
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Вопросы по IT / Jwt JavaScript, Поиск: Искать сообщения, созданные автором: Программизд 02  
Пользователи онлайн (10): Анонимы (8), Yandex Bot, Bing Bot 2 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]