Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Нужен совет по реализации модульности / 12 сообщений из 12, страница 1 из 1
16.04.2018, 09:44
    #39630603
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
Опишу суть вопроса. Есть сайт. На этом сайте есть около 10 функциональных страниц. На каждой странице есть динамические изменяемые данные. На сервере есть вебсокет. Я пришел к выводу что нужно на каждой странице подымать вебсокет соединение и получать динамические данные оттуда.

Вопрос вот в чем.

Я создам один js файл который будет отвечать за подключение к сокету. Но штука в том что на каждой странице может быть какой-то свой функционал который касается вебсокетов. Я думал сделать аля модули которые будут расширять тот js который отвечает за соединение. Как правильно реализовать такую структуру? При этом не хочется описывать все сообщения которые может принимать вебсокет в одном файле, а так что бы js который на странице добавлял свои варианты сообщений которые принимаются.

Спасибо.
...
Рейтинг: 0 / 0
16.04.2018, 09:53
    #39630606
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
Tsyklop,

приведите пожалуйста пример базового функционала и чем Вы его расширять хотите

А пока на ум приходит шаблон Декоратор - приём программирования, который позволяет взять существующую функцию и изменить/расширить ее поведение.
...
Рейтинг: 0 / 0
16.04.2018, 09:53
    #39630607
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
...
Рейтинг: 0 / 0
16.04.2018, 10:06
    #39630613
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
skyANAИ ещё: Redux WebSocket Integration

я не использую ни React ни Redux библиотеки
...
Рейтинг: 0 / 0
16.04.2018, 10:06
    #39630614
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
skyANA,

За декоратора спасибо.
...
Рейтинг: 0 / 0
16.04.2018, 10:20
    #39630620
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
Tsyklopя не использую ни React ни Redux библиотекиможно и без них
есть
Код: javascript
1.
 con = new WebSocket("ws://" + document.location.host + "/WS_server");



обрабатываем входящее сообщение

Код: 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.
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]);
                    } else
                    {
                        window[r[1]](r[2]);
                    }
                } catch (er) {
                    console.log('ошибка ' + er.stack);
                    console.log('вызов ' + r[1]);
                    console.trace();
                }
            } else
            {
//                var uInt8Array = new Uint8Array(response.data);
//                var arrayBuffer = response.data;
//                var bytes = new Uint8Array(arrayBuffer);
//                console.log(bytes);
//               
            }


для этого строка сообщения должно иметь вид команда+разделитель+данные
где команда совпадает с именем функции , которая обрабатывает данные.
если в команде будет точка (xxx.zzz)- то вызовется метод zzz у объекта xxx

такое вставляется на любой странице без всякого изменеия
...
Рейтинг: 0 / 0
16.04.2018, 10:56
    #39630659
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
вадя,

Спасибо. В моём случае сообщения в виде json строки.
...
Рейтинг: 0 / 0
16.04.2018, 11:09
    #39630668
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
TsyklopСпасибо. В моём случае сообщения в виде json строки.это не проблема.
json строка- это и будут данные.
суть предложения - вызов любой функции для обработки данных именно для этой функции.
...
Рейтинг: 0 / 0
16.04.2018, 14:15
    #39630815
stanilar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
Tsyklopа так что бы js который на странице добавлял свои варианты сообщений которые принимаются.

Странное понимание модульности. Получается что Вы хотите не выделить однотипный функционал в отдельный модуль, а размазать функционал по всему приложению.
...
Рейтинг: 0 / 0
17.04.2018, 09:59
    #39631337
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
stanilarTsyklopа так что бы js который на странице добавлял свои варианты сообщений которые принимаются.

Странное понимание модульности. Получается что Вы хотите не выделить однотипный функционал в отдельный модуль, а размазать функционал по всему приложению.

почему? есть один основной модуль. На каждой странице будет свой модуль который расширяет базовый.
...
Рейтинг: 0 / 0
17.04.2018, 10:02
    #39631339
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
Tsyklopпочему? есть один основной модуль. На каждой странице будет свой модуль который расширяет базовый.такое не нужно
нужен один модуль.
...
Рейтинг: 0 / 0
17.04.2018, 14:31
    #39631645
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет по реализации модульности
вадя,
к примеру
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Нужен совет по реализации модульности / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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