Map
Форумы / Вопросы по IT / Jwt JavaScript / 77 сообщений из 77, показаны все 4 страниц
16.02.2021, 14:54
    #2786472
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Вопрос. Ну вот я авторизировался. Получил токен. А где потом на клиентской стороне нармальные пацаны его хранят? В куках?
...
Рейтинг: 0 / 0
16.02.2021, 15:53
    #2786642
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
или в browser storage.
...
Рейтинг: 0 / 0
16.02.2021, 18:47
    #2787018
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  16.02.2021, 15:53
или в browser storage.
Меня в данном случае волнует безопасность. Ку-ку могут угнать? И как для этого должны звёзды сложиться?
...
Рейтинг: 0 / 0
16.02.2021, 22:34
    #2787780
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage  16.02.2021, 18:47
Программизд 02  16.02.2021, 15:53
или в browser storage.
Меня в данном случае волнует безопасность. Ку-ку могут угнать? И как для этого должны звёзды сложиться?
Могут. И сторидж могут. Если контроль над компом и браузером получат.
...
Рейтинг: 0 / 0
25.02.2021, 15:39
    #2816189
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Ненавижу ваш блядский джаваскрипт
...
Рейтинг: 0 / 0
01.03.2021, 09:35
    #2826764
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  25.02.2021, 15:39
Ненавижу ваш блядский джаваскрипт
"А он классный"
...
Рейтинг: 0 / 0
02.03.2021, 14:18
    #2830118
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  25.02.2021, 15:39
Ненавижу ваш блядский джаваскрипт
+1
Сука, почему епучий аякс при загрузке страницы вызвает событие на саксес. А потом из обработчика нифига не вызывает. Хотя за данными ходит успешно....[:bad]
...
Рейтинг: 0 / 0
02.03.2021, 14:25
    #2830156
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage  02.03.2021, 14:18
А потом из обработчика нифига не вызывает.
Из какого не вызывает? На success и error есть события. Чего не хватает?
...
Рейтинг: 0 / 0
02.03.2021, 14:29
    #2830174
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  02.03.2021, 14:25
WildMage  02.03.2021, 14:18
А потом из обработчика нифига не вызывает.
Из какого не вызывает? На success и error есть события. Чего не хватает?
Я решил вопрос только что. Все из-за этого ипучего this.
...
Рейтинг: 0 / 0
05.03.2021, 15:50
    #2839352
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Ибанистический язык
...
Рейтинг: 0 / 0
05.03.2021, 19:12
    #2840022
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Дет, объясни мне одну еботу
Вот объявляем мы эту херню
Код: JavaScript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var her=function()
{
this.object1 =null;
this.hermethod = function ()
{
object1 = new HerObject();

}
}

var herr = new her()
herr.hermethod();
Тут по идее herr.object1 должен быть уже не null. А он сука null.
Что это за эбанина?
А если внутри другого метода her к нему обратиться, то он снова не null.
...
Изменено: 05.03.2021, 19:13 - WildMage
Рейтинг: 0 / 0
05.03.2021, 19:50
    #2840182
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
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
05.03.2021, 19:52
    #2840192
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
И вот держи от основы и вся мощь ООП 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
05.03.2021, 20:05
    #2840256
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  05.03.2021, 19:50
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();
}
Эбанутый язык. Вообще. А прототип то ещё извращение.
...
Рейтинг: 0 / 0
05.03.2021, 20:08
    #2840277
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  05.03.2021, 19:52
И вот держи от основы и вся мощь ООП 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!
Это пездес.жпг. Все не как у людей
...
Рейтинг: 0 / 0
05.03.2021, 20:10
    #2840289
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage  05.03.2021, 20:05
Эбанутый язык. Вообще. А прототип то ещё извращение.
Главное из ООП делает и на том спасибо. Но конструкции да эбанутые:) Как и лайвхак var me = this!

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

А минипример основных моментов ООП, меня за него новички на руках носят:) Пока ты сам это всё найдешь в документации пройдет немало дней. А тут бери и пользуйся для своих классов и интерфейсов.
...
Рейтинг: 0 / 0
05.03.2021, 20:14
    #2840305
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  05.03.2021, 20:10
WildMage  05.03.2021, 20:05
Эбанутый язык. Вообще. А прототип то ещё извращение.
Главное из ООП делает и на том спасибо. Но конструкции да эбанутые:) Как и лайвхак var me = this!

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

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

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

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

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

Но в общем да, иногда влом заморачиваться. Просто в консоль вываливаешь и все:)
Та он убогий какой-то.
...
Рейтинг: 0 / 0
08.03.2021, 17:13
    #2846695
Дырокол
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Колю дыры
Jwt JavaScript
pasted_image.png
...
Рейтинг: 1 / 0
Нравится: Программизд 02
08.03.2021, 18:14
    #2846837
Енот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Js говно
...
Рейтинг: 0 / 0
09.03.2021, 13:22
    #2848600
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02 скажи в интернете же не врут, что синтаксис class теперь во всех основных браузерах поддерживают. А то я находил 2 прямо противоположные ссылки.
...
Рейтинг: 0 / 0
09.03.2021, 13:25
    #2848607
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage  09.03.2021, 13:22
Программизд 02 скажи в интернете же не врут, что синтаксис class теперь во всех основных браузерах поддерживают. А то я находил 2 прямо противоположные ссылки.
Не разбирался в каких поддерживает. Увы, приходится поддерживать и старенькие браузеры. Так что ни let, ни стрелочные фнкции, ни новый синтаксис мне использовать нельзя.
...
Рейтинг: 0 / 0
09.03.2021, 15:59
    #2849021
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  09.03.2021, 13:25
WildMage  09.03.2021, 13:22
Программизд 02 скажи в интернете же не врут, что синтаксис class теперь во всех основных браузерах поддерживают. А то я находил 2 прямо противоположные ссылки.
Не разбирался в каких поддерживает. Увы, приходится поддерживать и старенькие браузеры. Так что ни let, ни стрелочные фнкции, ни новый синтаксис мне использовать нельзя.
Babel там никак не прикрутить?
...
Рейтинг: 0 / 0
09.03.2021, 17:37
    #2849399
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
i see  09.03.2021, 15:59
Программизд 02  09.03.2021, 13:25
WildMage  09.03.2021, 13:22
...
Не разбирался в каких поддерживает. Увы, приходится поддерживать и старенькие браузеры. Так что ни let, ни стрелочные фнкции, ни новый синтаксис мне использовать нельзя.
Babel там никак не прикрутить?
Можно навреное. Но мы пока не щупали. К полифилам иногда прибегали.
...
Рейтинг: 0 / 0
18.03.2021, 09:19
    #2875294
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02, имел дело с компонентом handsontable?
Ps. Е&ный javascript
...
Рейтинг: 0 / 0
18.03.2021, 09:20
    #2875297
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
Нет. Не сталкивался.
...
Рейтинг: 0 / 0
18.03.2021, 09:22
    #2875300
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  18.03.2021, 09:20
Нет. Не сталкивался.
Б&! Говноязык. В обработчике событий не доступен this того комплекта, что вызвал. Говноязык, сука
...
Рейтинг: 0 / 0
18.03.2021, 09:58
    #2875339
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  18.03.2021, 09:22
Программизд 02  18.03.2021, 09:20
Нет. Не сталкивался.
Б&! Говноязык. В обработчике событий не доступен this того комплекта, что вызвал. Говноязык, сука
Передавай this в обработчик в переменной, делов-то.
А стрелочные функции не практикуешь?
...
Рейтинг: 0 / 0
18.03.2021, 09:59
    #2875341
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
JS окуенен.
...
Рейтинг: 0 / 0
18.03.2021, 10:05
    #2875353
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
i see  18.03.2021, 09:58
WildMage  18.03.2021, 09:22
Программизд 02  18.03.2021, 09:20
...
Б&! Говноязык. В обработчике событий не доступен this того комплекта, что вызвал. Говноязык, сука
Передавай this в обработчик в переменной, делов-то.
А стрелочные функции не практикуешь?
Компонент не мой. Я не могу там что-то передавать. Из коробки этого нет. Всего то хотел прикрутить редактор кастомный.
...
Рейтинг: 0 / 0
23.03.2021, 13:45
    #2887211
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Кто-нибудь пользовался телериковский treeview для jQuery?
Там подгрудка узлов вообще работает из коробки или шаманство какое надо делать? Непонятно как туда передается параметр текущего узла.
...
Изменено: 23.03.2021, 13:46 - WildMage
Рейтинг: 0 / 0
24.03.2021, 15:03
    #2889359
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Дет, ты знаешь в каких случаях Аякс json на выходе конвертит в объект, а в каких в виде строки отдает? Чо ему надо? Такое впечатление складывается, что он рандомно выбирает.
...
Рейтинг: 0 / 0
24.03.2021, 15:29
    #2889426
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage  24.03.2021, 15:03
Дет, ты знаешь в каких случаях Аякс json на выходе конвертит в объект, а в каких в виде строки отдает?
О какой именно функции идет речь?

Предполагаю что если он входные данные не может сконвертить в json то оставляет их как есть
...
Рейтинг: 0 / 0
24.03.2021, 15:36
    #2889437
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  24.03.2021, 15:29
WildMage  24.03.2021, 15:03
Дет, ты знаешь в каких случаях Аякс json на выходе конвертит в объект, а в каких в виде строки отдает?
О какой именно функции идет речь?

Предполагаю что если он входные данные не может сконвертить в json то оставляет их как есть
jQuery.ajax()
...
Рейтинг: 0 / 0
24.03.2021, 15:49
    #2889483
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
Этим не пользовался. Нужно смотреть внутренности или доку. Видимо как я предполагаю, оставляет как есть если не может сконверить
...
Рейтинг: 0 / 0
24.03.2021, 16:39
    #2889666
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  24.03.2021, 15:49
Этим не пользовался. Нужно смотреть внутренности или доку. Видимо как я предполагаю, оставляет как есть если не может сконверить
Вопрос в том, что я пользуюсь сторонним компонентом. А там эта балалайка не конвертит.
...
Рейтинг: 0 / 0
26.03.2021, 13:49
    #2894023
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02 щас будет тупой вопрос.
Скачал с npm либу с компонентами.
А там в начале module.exports =
/******/ (function(modules)

Соответственно на module оно при импорте и ругается.
Чо это вообще и где брать?
...
Рейтинг: 0 / 0
26.03.2021, 13:54
    #2894040
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
npm - это nodejs package manager

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

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

package.json

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

https://www.tutorialspoint.com/nodejs/nodejs_npm.htm
...
Рейтинг: 0 / 0
26.03.2021, 13:55
    #2894045
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  26.03.2021, 13:54
npm - это nodejs package manager

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

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

package.json

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

https://www.tutorialspoint.com/nodejs/nodejs_npm.htm
Про npm я в курсе. Вопрос в том, что я заюзал npm, скачал что мне надо,эту библиотеку подключил. У меня spa и я просто в страницу сделал ссылку на основной файл. А оно не взлетело из-за байды выше
...
Изменено: 26.03.2021, 13:56 - WildMage
Рейтинг: 0 / 0
26.03.2021, 13:56
    #2894049
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  26.03.2021, 13:49
Соответственно на module оно при импорте и ругается.
Чо это вообще и где брать?
Синтаксис node js
Собсно, module - это ссылка на текущий модуль.
exports - это то, что текущий модуль выставляет наружу для других модулей.
...
Рейтинг: 0 / 0
26.03.2021, 13:57
    #2894051
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
i see  26.03.2021, 13:56
WildMage  26.03.2021, 13:49
Соответственно на module оно при импорте и ругается.
Чо это вообще и где брать?
Синтаксис node js
Собсно, module - это ссылка на текущий модуль.
exports - это то, что текущий модуль выставляет наружу для других модулей.
Ок. И чо с этим делать. Как чтобы оно работало?
...
Рейтинг: 0 / 0
26.03.2021, 13:57
    #2894053
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Походу, это серверная либа
...
Рейтинг: 0 / 0
26.03.2021, 13:58
    #2894056
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
i see  26.03.2021, 13:57
Походу, это серверная либа
Тока это kendo ui. Как бы понятно, что надо на клиенте это
...
Рейтинг: 0 / 0
26.03.2021, 14:28
    #2894165
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
А ругается на код либы, или на твой код, в котором ты либу импортируешь?
...
Рейтинг: 0 / 0
26.03.2021, 14:49
    #2894227
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
i see  26.03.2021, 14:28
А ругается на код либы, или на твой код, в котором ты либу импортируешь?
Ругаетс на то, что modules не определено
...
Рейтинг: 0 / 0
26.03.2021, 14:52
    #2894243
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  26.03.2021, 14:49
i see  26.03.2021, 14:28
А ругается на код либы, или на твой код, в котором ты либу импортируешь?
Ругаетс на то, что modules не определено
А вгде неопределено? Это твой код, ты его сам написал-скопипастил? Если да, то это неправильно, такой синтаксис на клиенте неуместен.
...
Рейтинг: 0 / 0
26.03.2021, 14:55
    #2894249
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
i see  26.03.2021, 14:52
WildMage  26.03.2021, 14:49
i see  26.03.2021, 14:28
...
Ругаетс на то, что modules не определено
А вгде неопределено? Это твой код, ты его сам написал-скопипастил? Если да, то это неправильно, такой синтаксис на клиенте неуместен.
В модуле, который я скачал с помощью npm. Там все начинается через module.exports. Попытка добавить этот файл через script обречена на ошибку
...
Рейтинг: 0 / 0
26.03.2021, 15:03
    #2894274
i see
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  26.03.2021, 14:55
i see  26.03.2021, 14:52
WildMage  26.03.2021, 14:49
...
А вгде неопределено? Это твой код, ты его сам написал-скопипастил? Если да, то это неправильно, такой синтаксис на клиенте неуместен.
В модуле, который я скачал с помощью npm. Там все начинается через module.exports. Попытка добавить этот файл через script обречена на ошибку
Неудивительно, ведь синтаксис module.exports предназначен для взаимодействия модулей внутри серверного nodejs-проекта. Что-то не то с этой либой.
...
Рейтинг: 0 / 0
07.04.2021, 08:18
    #2922965
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
i see  26.03.2021, 15:03
WildMage  26.03.2021, 14:55
i see  26.03.2021, 14:52
...
В модуле, который я скачал с помощью npm. Там все начинается через module.exports. Попытка добавить этот файл через script обречена на ошибку
Неудивительно, ведь синтаксис module.exports предназначен для взаимодействия модулей внутри серверного nodejs-проекта. Что-то не то с этой либой.
ок.
...
Рейтинг: 0 / 0
07.04.2021, 08:20
    #2922969
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Дет, а какого фига оно может не аппендить?
Код: JavaScript
1.
2.
3.
4.
5.
6.
7.
8.
        let a = function (page, text)
        {
            return "<a href=\"javascript:app.page("+page +")\">"+text+"</a>";
        }
        $("#pages").empty();
        let x = a(1, "1");
        console.log(x);
        $("#pages").append(x);
pages - это div. Но по факту получается, что в диве нифига нет.
...
Рейтинг: 0 / 0
07.04.2021, 09:02
    #2923022
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
Может ей нужен дом объект а не строка?
...
Рейтинг: 0 / 0
07.04.2021, 09:06
    #2923026
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  07.04.2021, 09:02
Может ей нужен дом объект а не строка?
В доках сказано, что принимает и строку. Тем более в другом месте кода такая фигня работает. Только в другом месте divы в основном.
...
Рейтинг: 0 / 0
07.04.2021, 09:09
    #2923031
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
Может empty как то вредит. Может html код не верен. Ты потестируй добавляя другие варианты.
...
Рейтинг: 0 / 0
07.04.2021, 09:12
    #2923037
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  07.04.2021, 09:09
Может empty как то вредит. Может html код не верен. Ты потестируй добавляя другие варианты.
Да я уже и емпти убирал, и варианты добавлял. Я даже ручками тот хтмл код в панели для разработчиков в хроме в нужный див запихивал. И оно появлялось.
...
Рейтинг: 0 / 0
07.04.2021, 09:15
    #2923044
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  07.04.2021, 09:12
Программизд 02  07.04.2021, 09:09
Может empty как то вредит. Может html код не верен. Ты потестируй добавляя другие варианты.
Да я уже и емпти убирал, и варианты добавлял. Я даже ручками тот хтмл код в панели для разработчиков в хроме в нужный див запихивал. И оно появлялось.
Возможно я нашел в чем прикол.
...
Рейтинг: 0 / 0
07.04.2021, 09:22
    #2923055
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage 

Рассказывай. Так код выглядит ок.
...
Рейтинг: 0 / 0
07.04.2021, 11:35
    #2923412
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  07.04.2021, 09:22
WildMage 

Рассказывай. Так код выглядит ок.
Да ничего особенного. Тупняк мой.
...
Рейтинг: 0 / 0
14.07.2021, 12:40
    #3133799
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Говно ваш джава скрипт. Но чрезвычайно трешовый. Почти гусей можно иметь, блеать.
...
Рейтинг: 0 / 0
12.08.2021, 10:36
    #3191700
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Как сделать панельку, стобы когда при скролировании она вверх экрана прицеплялась?
...
Рейтинг: 0 / 0
12.08.2021, 10:59
    #3191722
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage  12.08.2021, 10:36
Как сделать панельку, стобы когда при скролировании она вверх экрана прицеплялась?
Можно разместить панельку сразу прикрепленной position: fixed

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

Или навесить функцию на событие скролла и там в зависимости от позиции сролла динамически менять у рамнки на position: fixed
При позишн фиксед у меня нижний див наезжает сверху и я не знаю как это побороть.
...
Рейтинг: 0 / 0
12.08.2021, 11:08
    #3191737
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
По идее можно было бы сделать основной див не скролируемым, но это не работает. Вернее оверфлоу то работает. Скрола нет. Но он див ведает на всю высоту контента. А вот как див ограничить высотой экрана я не знаю.
...
Рейтинг: 0 / 0
12.08.2021, 11:14
    #3191772
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
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
12.08.2021, 11:18
    #3191792
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  12.08.2021, 11:14
WildMage  12.08.2021, 11:06
Программизд 02  12.08.2021, 10:59
...
При позишн фиксед у меня нижний див наезжает сверху и я не знаю как это побороть.
zIndex
А он же порядок наложения определяет. А мне нужно, ятобы оно не накладывалось.
Ну т.е. условно говоря есть вверху див - тулбар. А внизу контент. Вот он пусть и скролируется. А тулбар либо ездит за экраном, либо вообще находится вне зоны скролинга. Но выстввляя оверфлоу на нужный див и убирая скролинг на верхнем диве нифига не решает проблемы. Так как он сразу делает див по высоте контента.
...
Изменено: 12.08.2021, 11:19 - WildMage
Рейтинг: 0 / 0
12.08.2021, 11:33
    #3191868
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  12.08.2021, 10:59
WildMage  12.08.2021, 10:36
Как сделать панельку, стобы когда при скролировании она вверх экрана прицеплялась?
Можно разместить панельку сразу прикрепленной position: fixed

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

Или навесить функцию на событие скролла и там в зависимости от позиции сролла динамически менять у рамнки на position: fixed
По второму пункту я нагуглил как. Но хотелось бы обойтись без скриптов в этом месте. Только цсс
Вряд ли получится.
...
Рейтинг: 0 / 0
12.08.2021, 12:21
    #3192027
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  12.08.2021, 11:35
WildMage  12.08.2021, 11:33
Программизд 02  12.08.2021, 10:59
...
По второму пункту я нагуглил как. Но хотелось бы обойтись без скриптов в этом месте. Только цсс
Вряд ли получится.
Короче я сделал как мне надо на уровне цсс. Без скрипто.
...
Рейтинг: 0 / 0
02.09.2021, 05:31
    #3232291
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
...
Рейтинг: 0 / 0
02.09.2021, 09:44
    #3232495
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
WildMage  02.09.2021, 05:31
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
Только самому их отслеживать и в цикле проверять running или нет.
...
Рейтинг: 0 / 0
02.09.2021, 09:48
    #3232517
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  02.09.2021, 09:44
WildMage  02.09.2021, 05:31
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
Только самому их отслеживать и в цикле проверять running или нет.
Ну так то сам аякс же из где-то хранит
...
Рейтинг: 0 / 0
02.09.2021, 10:34
    #3232624
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  02.09.2021, 09:44
WildMage  02.09.2021, 05:31
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
Только самому их отслеживать и в цикле проверять running или нет.
Короче для твоего просвещения. Если при аякс запросе указать global:false, то обработчики сверху не будут вызывать.
ЗЫ. Что-то жестко туплю. Недосып сказывается.
...
Рейтинг: 0 / 0
02.09.2021, 10:40
    #3232637
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
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
02.09.2021, 10:52
    #3232666
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02  02.09.2021, 10:40
WildMage  02.09.2021, 10:34
Программизд 02  02.09.2021, 09:44
...
Короче для твоего просвещения. Если при аякс запросе указать 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
01.02.2022, 13:30
    #3594386
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
Программизд 02 скажи, а в джава скрипте можно как-то универсально сделать колбеки с произвольным числом параметров. А потом так и вызывать?
Код: JavaScript
1.
2.
3.
4.
5.
6.
7.
8.
9.
function funct(a,b)
{
async(funct)//тут как-то передать параметры a и b
}
function async(callback)
{
...
callback() //тут их обратно передать
}
Соответственно число параметров может различаться. Такую дичь можно сделать?
...
Рейтинг: 0 / 0
01.02.2022, 14:29
    #3594557
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jwt JavaScript
WildMage  01.02.2022, 13:30
[игнорируется]
Программизд 02 скажи, а в джава скрипте можно как-то универсально сделать колбеки с произвольным числом параметров. А потом так и вызывать?
Код: JavaScript
1.
2.
3.
4.
5.
6.
7.
8.
9.
function funct(a,b)
{
async(funct)//тут как-то передать параметры a и b
}
function async(callback)
{
...
callback() //тут их обратно передать
}
Соответственно число параметров может различаться. Такую дичь можно сделать?
Да в общем то уже можешь не говорить. Разобрался.
...
Рейтинг: 0 / 0
01.02.2022, 14:30
    #3594560
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
Jwt JavaScript
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
Форумы / Вопросы по IT / Jwt JavaScript / 77 сообщений из 77, показаны все 4 страниц
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (3): Королева Жезлов, erbol, Конякула
Читали форум (2): Анонимы (1), Yandex Bot 4 мин.
Пользователи онлайн (12): Анонимы (10), Yandex Bot 1 мин., Bing Bot 6 мин.
x
x
Закрыть


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