powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Автоматический обработчик html форм на JS
25 сообщений из 353, страница 6 из 15
Автоматический обработчик html форм на JS
    #39341070
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадя,

WebSocket.onmessage как у тебя устроен?
ОООООООООООООО!!! ВОПРОС В ТОЧКУ!!!!!
на сервере или на клиенте? (сервер java, если что)
тут вся магия :)
поэтому с ответом спешить не буду, сначала уточню.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341071
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

на клиенте
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Ты там писал что то про гениальный подход.
Скажи, кому нужны недописаные картины или скульптуры с одной рукой?
Т.е. пиши ты в свой Дом что угодно, но придется оформить это в законченный продукт. Т.е. библиотеку jQuery3.
Ты явно тщеславен и хочешь признания твоего ноухау. А поступаешь как помешаный т.к. у тебя даже демки нет.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341127
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
начинается всё с "протокола"
идея взята с хабра, моя доработка.
первая часть - команда. она отделена от остальной части разделителем , я использую |
команда представляет собой имя функции , которая и будет обработывать данные.
из-за определённых условностей имена формализированы до полной абстакции
: xxxnn, yyynn и им подобные (где nn цифры) , буквы обозначают причастность к странице - прошу не пинать, это обеспечивает некоторые преимущества, которые перекрывают многие недостатки.
после разделителя -идут данные - тут мой "json" для экономии трафика стандарный не используется,
передаваемые данные разделены своим разделителем, он должен быть любым символом, который не встречается в данных
к примеру я использую ® - его код Alt0174, иногда используется прстая запятая
для разделения по разделителю - комада split.
из моей практики - длина данных составляет до 10 полей, это самый редкий размер.
Код: 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.
var con;
var rg = /^([a-z_0-9.]{1,})\|([\s\S]*)/; // для выделения команды
 var rg_url = /https?\:\/\/([\S\w][^:|/]{1,})/; // для выделения из адреса - самого имени , либо ip, 
исключает необходимость отслеживать имя/адрес сервера/сайта
                var ws = rg_url.exec(document.URL);
                con = new WebSocket('ws://' + ws[1] + ':<%=Singleton.getPORT_WS()%>'); // порт прописывется в Singleton , мой вариант , кому как нравится

                con.binaryType = "arraybuffer";  // почитать в спеках
                con.onopen = function (e) {
                    con.send('auth|<%=request.getSession().getAttribute("token")%>~<%= session.getId()%>');
//мой вариант авторизации ws
//для начала надо войти по логину/паролю на странице входа
//первой передаётся команда auth c  данными логин разделитель (~) сесия - на сервере проверяется есть ли токое, если нет ws закрывается //сервером. если есть это записывается в параметры ws коннекта, для дальнейшей возможности отправлять сообщения от пользователя //пользователю   это мой работающий вариант, опробован. 
//
                };
                con.onmessage = function (response) {
                    if (typeof (response.data) === 'string') {   //проверка на тип данных 
                        var r = rg.exec(response.data);  //делим на команду и данные
                        try {
                            if (r[1].includes('.')) {  // небольшая фишка для обращения к "свойствам объекта"
                                var d = r[1].split('.');  //проверка на наличие точки
                                window[d[0]][d[1]](r[2]);   //"аналог рефлексии"  d[0] -имя объекта, d[1] - имя свойства, r[2] данные
                            } else {
                                window[r[1]](r[2]);  // стандартный вызов
                            }
                        } catch (er) {
                            console.log('ошибка ' + er.stack);  //обработка ошибки, правда такой не очень информативет перехватывает и другие ошибки...
                            console.log('вызов ' + r[1]);   //пока оставлено как есть....
                            console.trace();

                        }
                    } else {  //тут для передачи бинарных данных, всё аналогично, пока заглушка, небыло необходимости, картинки передвались в base64
                        //                var uInt8Array = new Uint8Array(response.data);
                        //                var arrayBuffer = response.data;
                        //                var bytes = new Uint8Array(arrayBuffer);
                        //                console.log(bytes);
                        //               
                    }
                };
         //тут пока заглушка, что-либо городить не было причин, поэтому оставлено на будущее....
                  con.onclose = function (event) {
                    if (event.wasClean) {
                        console.log('Соединение закрыто чисто');
                    } else {
                        console.log('закрытие');
                    }
                    console.log('Код: ' + event.code + ' причина: ' + event.reason);
                };
                con.onerror = function (error) {
                    console.log("Ошибка ws " + error.message);
                };


некоторые незначительные тонкости описании пропущены
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341131
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Т.е. это твой протокол поверх сокета?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341136
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
Ты там писал что то про гениальный подход.
Скажи, кому нужны недописаные картины или скульптуры с одной рукой?
Т.е. пиши ты в свой Дом что угодно, но придется оформить это в законченный продукт. Т.е. библиотеку jQuery3.
Ты явно тщеславен и хочешь признания твоего ноухау. А поступаешь как помешаный т.к. у тебя даже демки нет.
я не тщеславен, признания я не хочу, просто если кому-то понравится - буду рад помочь.
я наслаждаюсь возможностями и не против поделиться.

насчет интегрирования - это дело каждого, я пока не нашёл как это можно унифицировать, возможно мало знаний, возможно слишком различные условия применения

я не говорю, что закочено, но работает, просто с каждым проектом появляются новые знания и зафиксировать не получается...
улучшается и улучшается.

насчет гениальности не мне судить......
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341137
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
Т.е. это твой протокол поверх сокета?
нет
по ws просто передаётся поток данных, двоичных или текстовых
а как эти данные организованы - это дело вкуса и решаемой задачи,
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341140
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
А тогда что такое Протокол?
Там тоже передается....
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341144
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
А тогда что такое Протокол?
Там тоже передается....
ну я ж в кавычках написал
протокол - так протокол
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341148
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

А чем http протокол не устроил, с передачей по нему json или jsonp? Разумеется websocket бывает удобен, если речь идёт об незамедлительной актуализации данных (тем что не отпускает соединение и ждёт сообщения от сервера). Но он же держит соединение открытым?!

Не жрёт ли это лишние ресурсы? И насколько оправдан такой подход во всех случаях, где не требуется моментальное обновление данных на клиенте, я вижу в этом подходе только лишние движения, занимание лишних ресурсов и, как я понимаю, лишних портов :)

С вэбсокетами ещё ни разу не работал (только игрался разок, что бы вникнуть в то, как их пользовать), потому что ajax зачастую было достаточно. Разрекламируйте мне, пожалуйста, эту технологию в случаях, когда мне не нужна ежесекундная актуализация данных на клиенте :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341156
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА чем http протокол не устроил, с передачей по нему json или jsonp? Разумеется websocket бывает удобен, если речь идёт об незамедлительной актуализации данных (тем что не отпускает соединение и ждёт сообщения от сервера). Но он же держит соединение открытым?!
в принципе это возможно , по тому же ajax возможно организовать такое. но это несколько завышенный трафик, обязательный ответ на запрос, не возможность инициировать передачу сервером.



авторНе жрёт ли это лишние ресурсы? И насколько оправдан такой подход во всех случаях, где не требуется моментальное обновление данных на клиенте, я вижу в этом подходе только лишние движения, занимание лишних ресурсов и, как я понимаю, лишних портов :)
лишних ресурсов не потребляет. лишних портов не занимает. только один. всё зависит от задачи , если не требуется - можно обойтись и ajax. но попробовать стоит.

авторС вэбсокетами ещё ни разу не работал (только игрался разок, что бы вникнуть в то, как их пользовать), потому что ajax зачастую было достаточно. Разрекламируйте мне, пожалуйста, эту технологию в случаях, когда мне не нужна ежесекундная актуализация данных на клиенте :)
я уже писал, но повторюсь,
-полнейшая асинхронность,
-на один запрос возможны несколько ответов,
-возможны запросы без ответов, даже пустых/формальных
-возможность передачи сервером без запроса с клиента
-клиентом может быть как браузе, так и андроид, или другой клиент с ws
-есть обработка обрывов.
-поддержка шифрования - wss
-возможность передачи текстовых/бинарных данных
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341165
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
json или jsonp
когда передаётся 2-3 числовых поля они избыточны по трафику, хотя счас это не очень актуально,
когда данные с базы передаются клиенту строку можно сформировать одной командой (mysql) CONCAT_WS(separator string, str1 string, str2 string,...)
и результат отправть клиенту.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341177
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпротокол - так протокол
вадяя пока не нашёл как это можно унифицировать,
да ты и не хочешь вот уже как лет 5.
Мне копипастить твоих 30 строк в каждый проект что ли?
Это называется - вывали кучу Г.....Что хотите то и делайте.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341187
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторда ты и не хочешь вот уже как лет 5.
Мне копипастить твоих 30 строк в каждый проект что ли?
Это называется - вывали кучу Г.....Что хотите то и делайте.
это код, в котором показано как это работает
называй как хочешь, все поняли, что ты по дну пирамиды любишь ходить
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341192
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёркак я понимаю, лишних портов :)
совершенно необязательно,
nginx, например, легко справляется и одним портом
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341194
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
да 5 лет, я наслаждаюсь, и то что так осталось, лишь подтверждает, что даже в таком состояниии это стабильно работает
было б лучше , если б кто-то помог усовершенствовать, трудно вариться в собственном соку, трудно пробить закостенелось взглядов.
может такое пробудит интерес
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341195
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341203
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпередаваемые данные разделены своим разделителем, он должен быть любым символом, который не встречается в данных
к примеру я использую ® - его код Alt0174
Протокол (без кавычек) сильно напоминает протоколы передачи по медленным телефонно-телеграфным каналам,
а в таблице ASCII достаточно служебных символов, например
Код: plaintext
1.
2.
3.
4.
5.
6.
FS, 1C — file separator, разделитель файлов.
GS, 1D — group separator, разделитель групп.
RS, 1E — record separator, разделитель записей.
US, 1F — unit separator, разделитель юнитов.
STX, 02 — start of text, начало «текста». 
ETX, 03 — end of text, конец «текста».
® - вполне законный символ, в данных встречается, на мой взгляд, регулярно
Кстати, какая кодировка используется?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341205
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя уже писал, но повторюсь,
-полнейшая асинхронность,
-на один запрос возможны несколько ответов,
-возможны запросы без ответов, даже пустых/формальных
-возможность передачи сервером без запроса с клиента
-клиентом может быть как браузе, так и андроид, или другой клиент с ws
-есть обработка обрывов.
-поддержка шифрования - wss
-возможность передачи текстовых/бинарных данных
честно говоря, всё это реализуется и без WebSocket(возможны запросы без ответов, даже пустых/формальных - это несущественно, в TCP/IP внутри квитирование всё равно имеет место)

захотелось освоить и применить WebSocket - замечательно
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341209
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяпередаваемые данные разделены своим разделителем, он должен быть любым символом, который не встречается в данных
к примеру я использую ® - его код Alt0174
Протокол (без кавычек) сильно напоминает протоколы передачи по медленным телефонно-телеграфным каналам,
а в таблице ASCII достаточно служебных символов, например
Код: plaintext
1.
2.
3.
4.
5.
6.
FS, 1C — file separator, разделитель файлов.
GS, 1D — group separator, разделитель групп.
RS, 1E — record separator, разделитель записей.
US, 1F — unit separator, разделитель юнитов.
STX, 02 — start of text, начало «текста». 
ETX, 03 — end of text, конец «текста».
® - вполне законный символ, в данных встречается, на мой взгляд, регулярно
Кстати, какая кодировка используется?
это все верно, просто я его выбрал, он отображается , я помню как его набрать :),
иногда структура бывае несколько сложнее, там использую 2-3 вида разделителей(больше не требовалось).
время показало работоспособность, пока мне этого достаточно
utf-8
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341210
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяне возможность инициировать передачу сервером
Long Polling - материалов в сети достаточно
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341211
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяэто все верно, просто я его выбрал, он отображается , я помню как его набрать :),
а если он в данных? (в названии товара легко может затесаться, например)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341213
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторчестно говоря, всё это реализуется и без WebSocket(возможны запросы без ответов, даже пустых/формальных - это несущественно, в TCP/IP внутри квитирование всё равно имеет место)

захотелось освоить и применить WebSocket - замечательно
абсолюто верно, для десктопов это не проблема, вот для браузеров это была проблема.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341216
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя помню как его набрать :),
\x1f ничуть не сложнее, чем Alt0174,
а для отладки - всяко нужно выводить форматированный текст.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341218
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя уже писал, но повторюсь,
-полнейшая асинхронность,
-на один запрос возможны несколько ответов,
-возможны запросы без ответов, даже пустых/формальных
-возможность передачи сервером без запроса с клиента
-клиентом может быть как браузе, так и андроид, или другой клиент с ws
-есть обработка обрывов.
-поддержка шифрования - wss
-возможность передачи текстовых/бинарных данных

1. ajax :)
2. когда такое надо? Почему не ответить одним разом?
3. согласен, килобайт трафика на пустом запросе сэкономите.
4. не подходит под условие. Это и есть незамедлительная актуализация данных на клиенте (я и написал такое условие, потому как посчитал единственным условием, когда ws оправдан)
5. а с http дела обстоят иначе? Оо
6. у ajax тоже есть статусы соединения, потому не преимущество
7. аналог https, потому не преимущество
8. сейчас это и аяксом делать можно


Пока что вывод такой: это надо только для незамедлительной актуализации данных на клиенте или на системах, где очень сильно порезан канал и счёт трафика идёт на килобайты.

Возможно ответы на вопросы 2 и 5 расширят область полезного применения ws :) так что с нетерпением жду ответов.
...
Рейтинг: 0 / 0
25 сообщений из 353, страница 6 из 15
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Автоматический обработчик html форм на JS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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