powered by simpleCommunicator - 21.11.28     © 2024 Programmizd 02
Map
77 сообщений из 77, показаны все 4 страниц
Jwt JavaScript
    #2786472
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос. Ну вот я авторизировался. Получил токен. А где потом на клиентской стороне нармальные пацаны его хранят? В куках?
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2786642
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
или в browser storage.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2787018
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  16.02.2021, 15:53
или в browser storage.
Меня в данном случае волнует безопасность. Ку-ку могут угнать? И как для этого должны звёзды сложиться?
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2787780
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  16.02.2021, 18:47
Программизд 02  16.02.2021, 15:53
или в browser storage.
Меня в данном случае волнует безопасность. Ку-ку могут угнать? И как для этого должны звёзды сложиться?
Могут. И сторидж могут. Если контроль над компом и браузером получат.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2816189
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ненавижу ваш блядский джаваскрипт
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2826764
i see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildMage  25.02.2021, 15:39
Ненавижу ваш блядский джаваскрипт
"А он классный"
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2830118
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildMage  25.02.2021, 15:39
Ненавижу ваш блядский джаваскрипт
+1
Сука, почему епучий аякс при загрузке страницы вызвает событие на саксес. А потом из обработчика нифига не вызывает. Хотя за данными ходит успешно....[:bad]
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2830156
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  02.03.2021, 14:18
А потом из обработчика нифига не вызывает.
Из какого не вызывает? На success и error есть события. Чего не хватает?
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2830174
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  02.03.2021, 14:25
WildMage  02.03.2021, 14:18
А потом из обработчика нифига не вызывает.
Из какого не вызывает? На success и error есть события. Чего не хватает?
Я решил вопрос только что. Все из-за этого ипучего this.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2839352
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ибанистический язык
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2840022
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дет, объясни мне одну еботу
Вот объявляем мы эту херню
Код: 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
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
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
Jwt JavaScript
    #2840256
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 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
Jwt JavaScript
    #2840277
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 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
Jwt JavaScript
    #2840289
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  05.03.2021, 20:05
Эбанутый язык. Вообще. А прототип то ещё извращение.
Главное из ООП делает и на том спасибо. Но конструкции да эбанутые:) Как и лайвхак var me = this!

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

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

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

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

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

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

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

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

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

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

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

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

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

package.json

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

https://www.tutorialspoint.com/nodejs/nodejs_npm.htm
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894045
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 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
Jwt JavaScript
    #2894049
i see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildMage  26.03.2021, 13:49
Соответственно на module оно при импорте и ругается.
Чо это вообще и где брать?
Синтаксис node js
Собсно, module - это ссылка на текущий модуль.
exports - это то, что текущий модуль выставляет наружу для других модулей.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894051
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i see  26.03.2021, 13:56
WildMage  26.03.2021, 13:49
Соответственно на module оно при импорте и ругается.
Чо это вообще и где брать?
Синтаксис node js
Собсно, module - это ссылка на текущий модуль.
exports - это то, что текущий модуль выставляет наружу для других модулей.
Ок. И чо с этим делать. Как чтобы оно работало?
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894053
i see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Походу, это серверная либа
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894056
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i see  26.03.2021, 13:57
Походу, это серверная либа
Тока это kendo ui. Как бы понятно, что надо на клиенте это
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894165
i see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ругается на код либы, или на твой код, в котором ты либу импортируешь?
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894227
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i see  26.03.2021, 14:28
А ругается на код либы, или на твой код, в котором ты либу импортируешь?
Ругаетс на то, что modules не определено
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894243
i see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildMage  26.03.2021, 14:49
i see  26.03.2021, 14:28
А ругается на код либы, или на твой код, в котором ты либу импортируешь?
Ругаетс на то, что modules не определено
А вгде неопределено? Это твой код, ты его сам написал-скопипастил? Если да, то это неправильно, такой синтаксис на клиенте неуместен.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2894249
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Jwt JavaScript
    #2894274
i see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Jwt JavaScript
    #2922965
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Jwt JavaScript
    #2922969
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дет, а какого фига оно может не аппендить?
Код: 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
Jwt JavaScript
    #2923022
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Может ей нужен дом объект а не строка?
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2923026
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  07.04.2021, 09:02
Может ей нужен дом объект а не строка?
В доках сказано, что принимает и строку. Тем более в другом месте кода такая фигня работает. Только в другом месте divы в основном.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2923031
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Может empty как то вредит. Может html код не верен. Ты потестируй добавляя другие варианты.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2923037
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  07.04.2021, 09:09
Может empty как то вредит. Может html код не верен. Ты потестируй добавляя другие варианты.
Да я уже и емпти убирал, и варианты добавлял. Я даже ручками тот хтмл код в панели для разработчиков в хроме в нужный див запихивал. И оно появлялось.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2923044
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildMage  07.04.2021, 09:12
Программизд 02  07.04.2021, 09:09
Может empty как то вредит. Может html код не верен. Ты потестируй добавляя другие варианты.
Да я уже и емпти убирал, и варианты добавлял. Я даже ручками тот хтмл код в панели для разработчиков в хроме в нужный див запихивал. И оно появлялось.
Возможно я нашел в чем прикол.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #2923055
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage 

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

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

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

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

Или навесить функцию на событие скролла и там в зависимости от позиции сролла динамически менять у рамнки на position: fixed
По второму пункту я нагуглил как. Но хотелось бы обойтись без скриптов в этом месте. Только цсс
...
Рейтинг: 0 / 0
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
Jwt JavaScript
    #3192027
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  12.08.2021, 11:35
WildMage  12.08.2021, 11:33
Программизд 02  12.08.2021, 10:59
...
По второму пункту я нагуглил как. Но хотелось бы обойтись без скриптов в этом месте. Только цсс
Вряд ли получится.
Короче я сделал как мне надо на уровне цсс. Без скрипто.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #3232291
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
...
Рейтинг: 0 / 0
Jwt JavaScript
    #3232495
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
WildMage  02.09.2021, 05:31
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
Только самому их отслеживать и в цикле проверять running или нет.
...
Рейтинг: 0 / 0
Jwt JavaScript
    #3232517
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  02.09.2021, 09:44
WildMage  02.09.2021, 05:31
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
Только самому их отслеживать и в цикле проверять running или нет.
Ну так то сам аякс же из где-то хранит
...
Рейтинг: 0 / 0
Jwt JavaScript
    #3232624
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  02.09.2021, 09:44
WildMage  02.09.2021, 05:31
Вопрос. сделал события на ajaxStart и ajaxStop. Он теперь показывает и убирает индикатор.
Но надо не на все события делать показ этого индикатора. В javascript можно как-то получить список исполняемых в данный момент аяксов?
Только самому их отслеживать и в цикле проверять running или нет.
Короче для твоего просвещения. Если при аякс запросе указать global:false, то обработчики сверху не будут вызывать.
ЗЫ. Что-то жестко туплю. Недосып сказывается.
...
Рейтинг: 0 / 0
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
Jwt JavaScript
    #3232666
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 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
Jwt JavaScript
    #3594386
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 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
Jwt JavaScript
    #3594557
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
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
77 сообщений из 77, показаны все 4 страниц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (3): Королева Жезлов, erbol, Конякула
Читали форум (2): Анонимы (1), Yandex Bot
Пользователи онлайн (6): Анонимы (4), Yandex Bot, Bing Bot 7 мин.
x
x
Закрыть


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