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

Есть у меня js-функция, которая получает все html-формы на странице (с учетом какого-то критерия), вешает на них сабмит.
Дальше при отправке формы автоматически проверяется заполненность обязательных полей.
И если все нужные поля заполнены, форма отправляется в ajax-файл.
В какой конкретно файл отправлять форму определение происходит тоже автоматически на основе данных формы.
Идейно, все это выглядит так:

html :
Код: html
1.
2.
3.
<form class="ajax" data-module="user" data-handler="register">
    ...
</form>



js :
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$( 'form.ajax' ).each( function() {
    var f = $( this );
    form.data = new FormData();
    
    f.submit( function( e ) {
        
        // --- Если все обязательные поля заполнены
        if( formCheck() ) {
            var submitParams = {
                'form': f, 
                'module': f.attr( 'data-module' ),
                'handler': f.attr( 'data-handler' )
            };
            formSubmit( submitParams );
        }
        else {}
    } );
} );



Ну и дальше в formSubmit методом $.ajax форма отправляется на сервер в ajax-файл, путь к которому генерится на основе данных из параметров module и handler. И вот в formSubit в success и error мне нужно запустить функцию "постсабмитной" обработки, которая для каждой формы может быть своя.

Код: 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.
function formSubmit( params )
{
    if( !form.error )
    {
        var f = params.form;	
	
        // --- Отправляем форму на сервер		
	$.ajax(
	{				
		'type': 'post',			
		'url': 'module/' + params.module + '/ajax/' + params.handler + '.php', 			
		'data': form.data,			
		'processData': false,			
		'contentType': false,				
		'success':  function( r ) 
		{ 
			// какие-то действия
                        someSuccessFunc();
                        // какие-то действия	

                        // а вместо этого должно быть что-то типа eval( submitParams.success() )						
		},

		'error': function( r ) 
		{ 					 
			// какие-то действия
                        someErrorFunc();
                        // какие-то действия

                        // а вместо этого должно быть что-то типа eval( submitParams.error() )
		}		 
	});
    }		
}



Т.е. по идее, имя этой функции (функциЙ) нужно как-то передать в formSubmit (как вариант, в тех же submitParams) а потом вызвать эту функцию по переданному имени. Но насколько я помню из классического JS, использование eval() считалось небезопасным. Хотя JS сам по себе небезопасный, имхо, т.к. он на стороне клиента. Какие есть еще идеи и варианты решения задачи, чтобы свести угрозы безопасности к минимуму или вообще их обойти?

Заранее благодарю!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338374
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay,

угрозы безопасности чего? :))

Не знаю, может Ваш случай не такой, но всё же расскажу как я обычно вешаю обработчики на такие формы:
Код: 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.
<!doctype html>
<html lang="en">

<head>
    <title>test</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
    $(document).on('ready', function(){
        
        $('body').on('submit', 'form.ajax', function(e){
            e.preventDefault();
            var frm = $(this);

            $.ajax({
                url: frm.attr('action'),
                type: frm.attr('method'),
                data: frm.serialize(),
                success: eval(frm.data('success')) || function(data){
                  //дефолтный обработчик, если у формы не определён success метод
                },
                error: eval(frm.data('error')) || function(error){
                  //дефолтный обработчик, если у формы не определён success метод
                  alert('got error');
                }
            });
        });
        
        var errorHandler = function (error){
            alert('got special error');
        };
        
    });
    
    </script>
</head>

<body>
    <form action="/aaa.php" method="post" data-error="errorHandler" class="ajax">
        <input type="text" name="test" value="" />
        <input type="submit" value="Протестировать" />
    </form>
    <form action="/aaa.php" method="post" class="ajax">
        <input type="text" name="test" value="" />
        <input type="submit" value="Протестировать" />
    </form>
</body>
</html>



P.S. Ну ладно... приврал немного. Я никогда так success и error не вешал на формы (только сам ajax так подвешивал, а обработчики успеха/провала обычно в внутри функций перебирал разными switch...case или if..else). Но согласитесь, идея классная в примере ;)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338382
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
за использование eval - я б голову сворачивал,
1 это медленно, 2 безграмотно.
3 от ajax стоит отказываться , есть прекрасная замена websocket
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338405
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
прямо-таки отказываться? Почему?
Всегда его использовал, никаких проблем не было.

Не исключаю, что появилось что-то более современное и эффективное, о чем я не знаю.
Если не сложно, можно тезисно?
А более подробно я уже сам почитаю.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338409
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр ,
идея интересная, но у меня почти тоже самое ))
Единственное, я сделал вызов недефолтных обработчиков по другому механизму.
Но объяснить мне это будет сложно, тогда мне придется особенности своего движка тут рассказывать ))

А метод serialise в Вашем случае что делает?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338410
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, конечно, не хаккер, но мне кажется вот сюда:
Код: javascript
1.
eval(frm.data('success'))


можно подсунуть какой-то вредоносный код, при желании

Почитал, советуют делать запуск функций через объект.
Грубо говоря:
Код: javascript
1.
2.
3.
4.
5.
6.
var someObject = {
  'success': successFunc(),
  'error': errorFunf()
}

someObject.successFunc();



По такому принципу я у себя и реализовал, но за информацию спасибо!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338414
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
за использование eval - я б голову сворачивал,
1 это медленно, 2 безграмотно.
3 от ajax стоит отказываться , есть прекрасная замена websocket

1.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    $(document).on('ready', function(){
        var handler = function(k){
            var a=2+2;
        };
        var handler2 = function(k){
		console.log('hello');
        };
        var start = new Date();
        for(var i=0; i<1000000; i++){
        	eval('handler2')();
        }
        var middle = new Date();
        for(var i=0; i<1000000; i++){
        	handler2(i);
        }
        var end = new Date();
        
        $('.div1').html(middle.getTime()-start.getTime());
        $('.div2').html(end.getTime()-middle.getTime());
    });


На handler2 теряется 0.6 секунды (выводит 10239 против 9689)
На handler теряется 0.14 секунды (выводит 147 против 8)
Замечаете насколько незначимыми эти затраты являются на сложных функциях (как и на простых... в процентах то +150%, а во времени всего 0.14 секунды). Затраты связаны с разбором кода, его интерпретации в выполняемый и т.д. То есть для 1000 000 итераций "замедление" будет приблизительно одинаковым и будет измеряться в милисекундах, если не толкать туда километровый код.
2. Это предположение такое? Даже комментировать не хочу, пока не услышу аргументацию внятную.
3. Жду аргументов

эммм..... "Пирамида Грэма".... помните? :)) По всем трём пунктам жду беседу, которая будет конструктивной, а не на основе предположений и субъективного видения ;)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338415
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay Програмёр ,
идея интересная, но у меня почти тоже самое ))
Единственное, я сделал вызов недефолтных обработчиков по другому механизму.
Но объяснить мне это будет сложно, тогда мне придется особенности своего движка тут рассказывать ))

А метод serialise в Вашем случае что делает?

Форму в строку параметров переводит. Кстати... забыл упомянуть, что мой код файлы не отправляет. Но думаю Ваш тоже не отправляет, потому не страшно... Для файлов надо отдельную ветку кода пилить, или разные ajaxForm подключать
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338418
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayЯ, конечно, не хаккер, но мне кажется вот сюда:
Код: javascript
1.
eval(frm.data('success'))


можно подсунуть какой-то вредоносный код, при желании

Почитал, советуют делать запуск функций через объект.
Грубо говоря:
Код: javascript
1.
2.
3.
4.
5.
6.
var someObject = {
  'success': successFunc(),
  'error': errorFunf()
}

someObject.successFunc();



По такому принципу я у себя и реализовал, но за информацию спасибо!

Джаваскрипт сам по себе вредоносен ))) Он открыт и выполняется на клиенте. Если в этот джаваскрипт кто-то что-то всунуть умудрится, то никакие защиты кроме обфускации Вас не спасут. Ну а так да... если обфусцируете код js, то метод вызова через объект станет безопаснее, чем напрямую.

P.S. Но разобраться в обфусцированном коде не то же самое, что в него что-то вклинить. Вклинить в разы проще. Например сдвинув код на одну строку ниже и выполнив первой строкой всё, что хочется :) Потому и обфускация - это защита от лентяя, которому сложно пару клавиш нажать. Это не hex кода с точками входа, когда хрен разберёшься что где, откуда начинается, а каждая правка грозит фатальной ошибкой отсутствия операции или её неверным вызовом :))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338423
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayвадя,
прямо-таки отказываться? Почему?
Всегда его использовал, никаких проблем не было.

Не исключаю, что появилось что-то более современное и эффективное, о чем я не знаю.
Если не сложно, можно тезисно?
А более подробно я уже сам почитаю.

https://learn.javascript.ru/websockets
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338425
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
ну то, что медленная ты сам посчитал, соглашусь, что в данном случае медленность не критична, но факт :)
-то, что не безопасна, все твердят, но ст воимо доводами соласен, безграмотна-потому как есть другой способ вызвать

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 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();

                }


это , конечно, не совсем , но принцип показан.
Код: javascript
1.
window[имя_объекта][имя_функции](данные)



время выполнения меряется так
Код: javascript
1.
2.
3.
4.
5.
consjle.time('xx');
...
console.nimeEnd('xxx')
...
console.nimeEnd('xxx')
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338427
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: javascript
1.
window[имя_объекта][имя_функции](данные)




А теперь то же самое только не засоряя глобальный объект (window)? Вот мой подход не засоряет, всё делая в локальной области видимости. Это и было причиной такого вызова (в первой версии ответа написал через window, но посчитал такой подход плохим и переписал).

Можем обсудить почему не следует засорять глобальную область видимости, но надеюсь Вы со мной согласитесь и нам не придётся эту тему поднимать :))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338504
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяот ajax стоит отказываться , есть прекрасная замена websocket
это совсем не замена
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338510
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяот ajax стоит отказываться , есть прекрасная замена websocket
это совсем не замена
П.1 начала флейма выполнен. Вадя произнес 'заявление' ))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338512
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА теперь то же самое только не засоряя глобальный объект (window)? Вот мой подход не засоряет, всё делая в локальной области видимости. Это и было причиной такого вызова (в первой версии ответа написал через window, но посчитал такой подход плохим и переписал).

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

Изопропил вадяот ajax стоит отказываться , есть прекрасная замена websocket

это совсем не замена

а тут по-точне, пожалуйста.
4 года пользуюсь, вместо ajax, неужели ошибался?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338517
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Изопропилпропущено...

это совсем не замена
П.1 начала флейма выполнен. Вадя произнес 'заявление' ))

Нене... мы по пирамиде Грэма общаемся :)) Уже вот 2 вопроса закрыли. Жду закрытия третьего (вадя видимо спать ушёл, а я всё до кровати не доберусь).

Вопрос с websockets четвёртый. Но вадя когда мне писал второй раз его упустил. Думаю ему просто нечего сказать, потому этот вопрос вероятно уже закрыт. Если нет, то в любом случае быстро закроется. У меня аргументация есть
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338518
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Слово овехед для тебя пустой звук. Бесполезно.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338520
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
Давай).
Закрой его плжалуйста по сокетам.
Удачи!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338526
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНене... мы по пирамиде Грэма общаемся :)) Уже вот 2 вопроса закрыли. Жду закрытия третьего (вадя видимо спать ушёл, а я всё до кровати не доберусь).
я стараюсь придерживаться
по применению - я вроде ответил, что вопрос спорный, надо по конкретному месту, и по вкусу.
про засор - я согласился, но это не отвергает спорность певоно пункта.
авторВопрос с websockets четвёртый. Но вадя когда мне писал второй раз его упустил. Думаю ему просто нечего сказать, потому этот вопрос вероятно уже закрыт. Если нет, то в любом случае быстро закроется. У меня аргументация есть
вот тут ничего не понял
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338528
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
я так понимаю Petro123 дошёл до основания пирамиды?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338534
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
я так понимаю Petro123 дошёл до основания пирамиды?

Почти. Ссылаясь на личность автора, но не оскорбляя )) Но он в нашей беседе в целом не участвует, потому его простительно... В виде банального вброса :))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338542
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрУ меня аргументация есть
не поможет ))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338546
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторНене... мы по пирамиде Грэма общаемся :)) Уже вот 2 вопроса закрыли. Жду закрытия третьего (вадя видимо спать ушёл, а я всё до кровати не доберусь).
я стараюсь придерживаться
по применению - я вроде ответил, что вопрос спорный, надо по конкретному месту, и по вкусу.
про засор - я согласился, но это не отвергает спорность певоно пункта.
авторВопрос с websockets четвёртый. Но вадя когда мне писал второй раз его упустил. Думаю ему просто нечего сказать, потому этот вопрос вероятно уже закрыт. Если нет, то в любом случае быстро закроется. У меня аргументация есть
вот тут ничего не понял

Ну значит так, как я понял нашу беседу:
1. Аргумент против - медленно
Ответ на аргумент - скорость незначима. После этого пришли к согласию, что в данном случае это не является минусом

2. Аргумент против - неграмотно (потому как можно иначе)
Ответ на аргумент - нельзя это сделать иначе не засоряя глобальную область видимости

3. Аргумент против - небезопасно (не Ваш, а urukhay)
Ответ на аргумент - учитывая выбранный инструмент вообще незначимо :)

4. Заявление пока без аргументации - вместо ajax можно использовать websocket. Жду аргументацию для чего так делать, если эта тема всё ещё интересна.


То есть пока против eval в указанном контексте аргументов нет (все или крайне незначимы или ошибочны)...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338565
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2. Аргумент против - неграмотно (потому как можно иначе)
Ответ на аргумент - нельзя это сделать иначе не засоряя глобальную область видимости

я б не стал так котегорично
автор3. Аргумент против - небезопасно (не Ваш, а urukhay)
Ответ на аргумент - учитывая выбранный инструмент вообще незначимо :)
eval вообще не рекомендуют, и я б не рекомендовал, лучше поискать другой вариант. но это моё мнение.

автор4. Заявление пока без аргументации - вместо ajax можно использовать websocket. Жду аргументацию для чего так делать, если эта тема всё ещё интересна.
по этой теме я могу много рассказать, поделиться опытом применения, описать достоинства и недостатки.
поэтому, для конкрктики, если интересно - задавайте вопросы
правда по серверной части в применении к серверу на java.
ссылку на информацию я дал.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338573
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпо этой теме я могу много рассказать, поделиться опытом применения, описать достоинства и недостатки.
поэтому, для конкрктики, если интересно - задавайте вопросы
правда по серверной части в применении к серверу на java.
ссылку на информацию я дал.

в случае проблемы с соединением по websocket откат на ajax - есть(как в sockjs например)?

тебе вебсокеты нужны чтоб на сервере состояние держать?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338583
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрПочти. Ссылаясь на личность автора, но не оскорбляя ))
да.
1. Я юмор люблю. 2. Мне лень. 3 До дна пирамиды не дохожу. Это неинтеллигентно.
...
Взял попкорн.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338584
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторв случае проблемы с соединением по websocket откат на ajax - есть(как в sockjs например)?
я дал ссылку там всё описано.
откат для чего? если есть обрыв -там есть обработка обрыва, есть коды по которым можно понять причину обрыва.
автортебе вебсокеты нужны чтоб на сервере состояние держать?
вот тут полное не понимание.
есть несколько Основных отличий
при открытии ws создаётся канал связи.
сервер может быть инициатором сообщений .
после отправки сообщения нет необходимости отправлять ответ.
сообщения полностью асинхронны.
по ws можно пердвать как текстовые тик и бинарные данные.

всё остальное вытекает из этих возможностей.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338591
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяоткат для чего?
невозможность установления соединения( прокси, антивирусы и т д)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338592
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавтор2. Аргумент против - неграмотно (потому как можно иначе)
Ответ на аргумент - нельзя это сделать иначе не засоряя глобальную область видимости

я б не стал так котегорично
автор3. Аргумент против - небезопасно (не Ваш, а urukhay)
Ответ на аргумент - учитывая выбранный инструмент вообще незначимо :)
eval вообще не рекомендуют, и я б не рекомендовал, лучше поискать другой вариант. но это моё мнение.

автор4. Заявление пока без аргументации - вместо ajax можно использовать websocket. Жду аргументацию для чего так делать, если эта тема всё ещё интересна.
по этой теме я могу много рассказать, поделиться опытом применения, описать достоинства и недостатки.
поэтому, для конкрктики, если интересно - задавайте вопросы
правда по серверной части в применении к серверу на java.
ссылку на информацию я дал.

"я б не стал так котегорично" - а я стал ))) Мне другой метод доступа к локальным переменным неизвестен. Если Вам известен - поделитесь

"eval вообще не рекомендуют" - не аргумент. Скажите конкретно почему его не рекомендуют и как это применимо к указанному случаю

"по этой теме я могу много рассказать" - я Вас слушаю ))) Какие плюсы Вы знаете, которые применимы к указанному случаю?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338615
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяоткат для чего?
невозможность установления соединения( прокси, антивирусы и т д)
одна проблема - старые прокси могут не пропускать ws (была такая инфа, но я не сталкивался) , обходится легко - делается соединение по wss.
для корпоративного применения - оно обязательно.
при невозможности установления соединения - есть обрабатываемая ошибка.

в применении к данному случаю - нет необходимости использовать форму.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338621
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Мне другой метод доступа к локальным переменным неизвестен. Если Вам известен - поделитесь

я ж показал
Код: javascript
1.
window[имя_объекта][имя_функции](данные)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338673
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавтор Мне другой метод доступа к локальным переменным неизвестен. Если Вам известен - поделитесь

я ж показал
Код: javascript
1.
window[имя_объекта][имя_функции](данные)


вадя!!! Вы знаете что такое "локальные переменные"?! Исправьтесь и напишите нормальный ответ на этот вопрос... Или проще, признайтесь что ошиблись.

А то начинаете фигню говорить.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338694
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрА то начинаете фигню говорить.
+1
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39338717
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторФорму в строку параметров переводит. Кстати... забыл упомянуть, что мой код файлы не отправляет. Но думаю Ваш тоже не отправляет, потому не страшно... Для файлов надо отдельную ветку кода пилить, или разные ajaxForm подключать

Еще как отправляет )) Я просто не стал его здесь приводить.
Опять же, идейно:

Код: 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.
function getFields( f )
{
    var form = {};
    f.find('.field').each(
        var field = $(this);

        // --- Получаем имя и тип поля			
        var fieldName = field.attr('name');				
        var fieldType = field.attr('type');

        // --- Если это изображение				
        if(fieldType == 'file')
        {
		for(var i = 0; i < field[0].files.length; i ++)
		{
			form.data.append(fieldName, field[0].files[i]);								
		}
	}
				
	// --- Поля других типов				
	else form.data.append(fieldName, field.val());
    );
}

Ну а дальше в описанной мною formSubmit в $.ajax передается form.data.
Все работает :)

				
				
				
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339157
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
так устроит?

Код: html
1.
<input type="button"  id="xxs" data-sss="ddd"/>



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 $(document).on('click', '#xxs', function (e) {
       
                window[ this.id].cc = {
                    ddd: function () {
                        console.log('ooooooooooo');
                    }
                };

                var f = window[ this.id].cc[this.dataset.sss];

                setTimeout(f(), 2000);
            });


городить ajax не лень
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339162
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
городить ajax лень
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339206
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
так устроит?

Код: html
1.
<input type="button"  id="xxs" data-sss="ddd"/>



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 $(document).on('click', '#xxs', function (e) {
       
                window[ this.id].cc = {
                    ddd: function () {
                        console.log('ooooooooooo');
                    }
                };

                var f = window[ this.id].cc[this.dataset.sss];

                setTimeout(f(), 2000);
            });


городить ajax лень

Уважаемый вадя, у нас так беседы не получится. "window[ this.id].cc = ..." вот это и есть захламления глобального объекта!!! Эт овы не локальную переменную создали, а глобальную!!!

Это значит что у меня в совсем левом модуле, отвечающим совсем за другое, тоже окажется что используется переменная window.xxs и что теперь делать? Лезть в систему и выискивать баг?!

Вадя, будьте добры, перед ведением беседы ознакомится с терминами, которые используются в сфере беседы... или хотя бы ознакомьтесь с ними тогда, когда о них кто-то сказал! А то нифига это общение не по пирамиде Грэма.

Это я Вам довод, а Вы мне ответ внепопад со словами "дак я уже ответил"!!! Поверьте, это очень злит, потому как является крайней мерой неуважения к собеседнику.

Жду ответа по вопросу. Если очередной ответ будет также невпопад, отвечать на него не буду и беседу будем считать законченой с пометкой "вадя не умеет дискутировать даже по инструкции"
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339223
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Програмёр
автор "window[ this.id].cc = ..." вот это и есть захламления глобального объекта!!! Эт овы не локальную переменную создали, а глобальную!!!

я не создал глобальную переменную, я просто добавил свойство для элемента к которому привязан данный обработчик.
и есть польза можно назначать ссвойства , заключённые внутри объекта , но имеющие доступ снаружи.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339242
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяУважаемый Програмёр
автор "window[ this.id].cc = ..." вот это и есть захламления глобального объекта!!! Эт овы не локальную переменную создали, а глобальную!!!

я не создал глобальную переменную, я просто добавил свойство для элемента к которому привязан данный обработчик.
и есть польза можно назначать ссвойства , заключённые внутри объекта , но имеющие доступ снаружи.
Хм, странное решение.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339296
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяУважаемый Програмёр
автор "window[ this.id].cc = ..." вот это и есть захламления глобального объекта!!! Эт овы не локальную переменную создали, а глобальную!!!

я не создал глобальную переменную, я просто добавил свойство для элемента к которому привязан данный обработчик.
и есть польза можно назначать ссвойства , заключённые внутри объекта , но имеющие доступ снаружи.

А Вы знаете почему в модульных системах нельзя для элементов id давать, или если даёте, то составлять их так, что бы никто другой не догадался их так назвать (зачастую если айди - то некий хэш, с припиской имени самого элемента и с добавлением названием модуля и прочие извращения)?!

Потому что они должны быть уникальны... Представьте себе, на сайте 2 формы (вносятся разными модулями системы) и у обеих одинаковый id. Что будет?! - Правильно, нихрена хорошего не будет. Это нарушение спецификации, а потому реакцию браузера предугадать невозможно.

И ещё, если это массовое навешивание обработчика на формы, или если это вообще делегированный обработчик навешанный на боди, то как тогда предлагаете поступать (как его навешивать)?

А Вы знаете, что по спецификации HTML Вы не можете добавлять произвольные поля к элементам? Эта возможность официально была добавлена только в html5 и только для полей с префиксом "data-"? JQuery вроде до того как-то это эмулировать умела... Но опять же, всё завязывается на data (а вы просто с нарушением всех правил "cc" написали да ещё и на чистом js)

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


А ТЕПЕРЬ ГЛАВНОЕ: зачем мне так изгаляться стараясь не написать "eval", если в указанном контексте у него нет слабых или отрицательных сторон? Я то, что вы пишете в 5-6 строк с кучей запутываний, смог написать в одну строку где всё ясно и понятно: "запустить этот обработчик если указан, или дефолтный в ином случае"!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339300
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Всё просто. Если то, что я написал можно написать иначе - повторите функционал не используя eval :))
То есть зарегистрируйте универсальный обработчик для всех ajax форм, который будет инкапсулировать в себе callback функции, которые в свою очередь будут обработчиками ответа сервера (success, error)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339314
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА Вы знаете почему в модульных системах нельзя для элементов id давать, или если даёте, то составлять их так, что бы никто другой не догадался их так назвать (зачастую если айди - то некий хэш, с припиской имени самого элемента и с добавлением названием модуля и прочие извращения)?!

а ты знаешь, что самый оптимальный поиск по дереву именно по id....

авторПотому что они должны быть уникальны... Представьте себе, на сайте 2 формы (вносятся разными модулями системы) и у обеих одинаковый id. Что будет?! - Правильно, нихрена хорошего не будет. Это нарушение спецификации, а потому реакцию браузера предугадать невозможно.

а ты знаешь что имена перменных/муодулей должны быть уникальны?

авторИ ещё, если это массовое навешивание обработчика на формы, или если это вообще делегированный обработчик навешанный на боди, то как тогда предлагаете поступать (как его навешивать)?
ручками
авторА Вы знаете, что по спецификации HTML Вы не можете добавлять произвольные поля к элементам? Эта возможность официально была добавлена только в html5 и только для полей с префиксом "data-"? JQuery вроде до того как-то это эмулировать умела... Но опять же, всё завязывается на data (а вы просто с нарушением всех правил "cc" написали да ещё и на чистом js)
а ты знаешь, что ты путаешь понятия?
а ты знаешь что такое .data в jquery?
а ты знаешь что такое обращение является правильным
localStorage.xxx=7
свойства через точку это нормально.


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

тож самое можно сказать и про использование eval.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339360
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Вы еврей? ) Я Вам вопросы задавал для того, что бы ответы услышать, а не получить в ответ список вопросов, некоторые из которых темы не касаются (вроде уникальности имён модулей... вы наверное никогда не видели сложных систем, которые делятся на модули, а те делятся на подмодули, а те состоят из компонентов... о какой уникальности имени речь я вообще не понимаю)
Ладно. Беседу пора закрывать. Я понял, Вы будете упираться даже когда понимаете что неправы. Троллинг это или Ваши убеждения мне не понять, но совершать подвиг skyANA с разъяснением Вам Ваших ошибок на 14-ти страницах я не готов :))

Оставайтесь при своём мнении... Вы очень умный человек и нефиг нам с Вами спорить и что либо рассказывать. Удачи Вам ;)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339367
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339374
MSSQLAndDotNet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
за использование eval - я б голову сворачивал,
1 это медленно, 2 безграмотно.
3 от ajax стоит отказываться , есть прекрасная замена websocket
трафик жрет
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339381
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSSQLAndDotNetвадяПрограмёр,
за использование eval - я б голову сворачивал,
1 это медленно, 2 безграмотно.
3 от ajax стоит отказываться , есть прекрасная замена websocket
трафик жрет
кто ?
websocket????
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339391
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMSSQLAndDotNetпропущено...

трафик жрет
кто ?
websocket????
Это же Лёшык, он с ПТ
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339544
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадяУважаемый Програмёр
пропущено...

я не создал глобальную переменную, я просто добавил свойство для элемента к которому привязан данный обработчик.
и есть польза можно назначать ссвойства , заключённые внутри объекта , но имеющие доступ снаружи.
Хм, странное решение.
А почему странное?

Дак давайте рассмотрим ситуацию, когда кнопка - это кнопка Edit, при нажатии на которую с сервера подгружаются некие данные для редактирования и отображается "окно" для их редактирования.
Кнопка Edit при этом пропадает.

То есть типичная ситуация, когда полученную модель ну никак нельзя связать со свойствами DOM элемента.
Ну и вообще мешать модель и с элементами представления - это же моветон :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339640
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДак давайте рассмотрим ситуацию, когда кнопка - это кнопка Edit, при нажатии на которую с сервера подгружаются некие данные для редактирования и отображается "окно" для их редактирования.
Кнопка Edit при этом пропадает.

То есть типичная ситуация, когда полученную модель ну никак нельзя связать со свойствами DOM элемента.
Ну и вообще мешать модель и с элементами представления - это же моветон :)
странный подход...
продолжу твою конструкцию
есть кнопка Edit - нажали - загрузилось- кнопка Edit стала : невидимой/неактивной ( на выбор) - начали редактировать - появилась кнопка Save - отредактировали - нажали Save - сохранилось - кнопка Save стала : невидимой/неактивной ( на выбор)- кнопка Edit стала видимой, активной
всё готово для следующего действа.
что здесь странного? защита от случайного нажатия , когда много введено. вариантов много такой защиты- кому какой нравится
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339668
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
доказательства оппонента иногда лежат в другой плоскости - Архитектура
Ты как раз на эти вопросы и не отвечаешь:
skyANAНу и вообще мешать модель и с элементами представления - это же моветон :)
Трудно доказать кодировщику 1-го класса что такое Модель и т.д.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339701
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторДак давайте рассмотрим ситуацию, когда кнопка - это кнопка Edit, при нажатии на которую с сервера подгружаются некие данные для редактирования и отображается "окно" для их редактирования.
Кнопка Edit при этом пропадает.

То есть типичная ситуация, когда полученную модель ну никак нельзя связать со свойствами DOM элемента.
Ну и вообще мешать модель и с элементами представления - это же моветон :)
странный подход...
продолжу твою конструкцию
есть кнопка Edit - нажали - загрузилось- кнопка Edit стала : невидимой/неактивной ( на выбор) - начали редактировать - появилась кнопка Save - отредактировали - нажали Save - сохранилось - кнопка Save стала : невидимой/неактивной ( на выбор)- кнопка Edit стала видимой, активной
всё готово для следующего действа.
что здесь странного? защита от случайного нажатия , когда много введено. вариантов много такой защиты- кому какой нравится
Ты мне скажи, где модель (данные) для редактирования то у тебя будут? В свойствах какой кнопки? :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339714
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
доказательства оппонента иногда лежат в другой плоскости - Архитектура
Ты как раз на эти вопросы и не отвечаешь:
skyANAНу и вообще мешать модель и с элементами представления - это же моветон :)
Трудно доказать кодировщику 1-го класса что такое Модель и т.д.
когда городят кучу не нужного, ради чего-то
а потом находят оправдания этому кучей заумных слов - вот это моветон
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339717
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, ты мне скажи, где модель (данные) для редактирования то у тебя будут? В свойствах какой кнопки?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339726
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТы мне скажи, где модель (данные) для редактирования то у тебя будут? В свойствах какой кнопки? :)
рассмотрим абстрактный пример
берём делаем кастомный элемент
див, внутри которогоесть textarea, кнопки edit, save
в ShadowRoot.
нажимаем edit - загружается в textarea текст
принажатии этой кнопки идёт обращение на сервер (как идентифицировать нужный кусок данных - оставим за кадром, это не суть)
с сервера возвращается строка (данные)
причем здесь кнопка и данные?
или я тебя не понял?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339739
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякогда городят кучу не нужного, ради чего-то
а потом находят оправдания этому кучей заумных слов - вот это моветон
твоё слабое место - Базовое образование по построению информационных систем.
Это: шаблоны\MVC\Модель\Переиспользование кода .
Удачи!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339745
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторТы мне скажи, где модель (данные) для редактирования то у тебя будут? В свойствах какой кнопки? :)
рассмотрим абстрактный пример
берём делаем кастомный элемент
див, внутри которогоесть textarea, кнопки edit, save
в ShadowRoot.
нажимаем edit - загружается в textarea текст
принажатии этой кнопки идёт обращение на сервер (как идентифицировать нужный кусок данных - оставим за кадром, это не суть)
с сервера возвращается строка (данные)
причем здесь кнопка и данные?
или я тебя не понял?
Ты потерял нить, речь вот об этом твоём решении: 19847352 .
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339752
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто: шаблоны\MVC\Модель\Переиспользование кода.
не надо гнаться за тем чего нет.
мы уже это проходили на примере жигулей
переиспользование мощностей, оборудования - результат плачевный.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339755
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТы потерял нить, речь вот об этом твоём решении: 19847352.
там просто пример доступа ко "внутренности" без eval.
поддержка идеи Програмёра, о том что не надо городить глобальные переменные.
есть кнопка и всё что снеё связано может быть только с ней
как говорится - всё своё ношу с собой.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339767
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторТы потерял нить, речь вот об этом твоём решении: 19847352.
там просто пример доступа ко "внутренности" без eval.
поддержка идеи Програмёра, о том что не надо городить глобальные переменные.
есть кнопка и всё что снеё связано может быть только с ней
как говорится - всё своё ношу с собой.
У ТСа то, что приходит с сервера не связано с кнопкой, так что пример не валидный, а вредный.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339778
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ ТСа то, что приходит с сервера не связано с кнопкой, так что пример не валидный, а вредный.
1 пример -ответ Програмкру
2 в примере кнопка показана как объект , к которому привязывается "свойство"
это свойство можно привязать и к объекту форм.
показано как поймать рыбу - а как её приготовить и съесть .....
межет ещё и пожевать?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339799
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторЭто: шаблоны\MVC\Модель\Переиспользование кода.
мы уже это проходили на примере жигулей
переиспользование мощностей, оборудования - результат плачевный.
))) LOL
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339800
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторУ ТСа то, что приходит с сервера не связано с кнопкой, так что пример не валидный, а вредный.
1 пример -ответ Програмкру
2 в примере кнопка показана как объект , к которому привязывается "свойство"
это свойство можно привязать и к объекту форм.
показано как поймать рыбу - а как её приготовить и съесть .....
межет ещё и пожевать?
1. Форум публичный, его кто-нибудь прочитает и притащит к себе в проект плохое решение.
2. Да в JavaScript к любому объекту можно привязать любое свойство, но это не значит, что надо пихать что попало куда попало :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339815
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. Форум публичный, его кто-нибудь прочитает и притащит к себе в проект плохое решение.
2. Да в JavaScript к любому объекту можно привязать любое свойство, но это не значит, что надо пихать что попало куда попало :)
это только твоя оценка.
важна идея, а реализация под конкретное - дело каждого своё.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339927
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавтор1. Форум публичный, его кто-нибудь прочитает и притащит к себе в проект плохое решение.
2. Да в JavaScript к любому объекту можно привязать любое свойство, но это не значит, что надо пихать что попало куда попало :)
это только твоя оценка.
важна идея, а реализация под конкретное - дело каждого своё.

Не только его, если что ;) Из беседы видно, что и я и Petro123 солидарны в этом вопросе со skyANA :)

Оффтоп: вадя, не знаю как Вы, а я склонен признавать авторитет людей, которые обладают большими знаниями и/или умениями чем я. Вот скажу я сейчас "оно зелёное", а мне skyANA ответит "Нет же, оно красное!"... Я не начну спорить, а побегу по интернету в поисках систем проверки цветовосприятия, что бы убедиться, что я не дальтоник и что разные оттенки и полутона вижу правильно . И только после этого, возможно, постараюсь поправить собеседника в его ошибке, но только разрушая его аргументацию, а не навязывая свою, как делаете Вы! Когда говоришь "так будет хуже", а Вы в ответ "но иногда бывает же, что так лучше"!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339928
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавтор1. Форум публичный, его кто-нибудь прочитает и притащит к себе в проект плохое решение.
2. Да в JavaScript к любому объекту можно привязать любое свойство, но это не значит, что надо пихать что попало куда попало :)
это только твоя оценка.
важна идея, а реализация под конкретное - дело каждого своё.
Реальный пример привести можешь того, когда разумно что-то, полученное в результате асинхронного вызова, запихнуть в свойства DOM элемента?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339958
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реальный пример привести можешь того, когда разумно что-то, полученное в результате асинхронного вызова, запихнуть в свойства DOM элемента?
для правильного ответа прошу уточнить , что ты подразумеваешь под асинхронным выводом?
это ворос не для флуда.
почитать что написано я и сам могу, мне нужна твоя трактовка, чтоб понять что тебя интерсует в таком, странном для меня , вопросе
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39339999
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяРеальный пример привести можешь того, когда разумно что-то, полученное в результате асинхронного вызова, запихнуть в свойства DOM элемента?
для правильного ответа прошу уточнить , что ты подразумеваешь под асинхронным выводом?
это ворос не для флуда.
почитать что написано я и сам могу, мне нужна твоя трактовка, чтоб понять что тебя интерсует в таком, странном для меня , вопросе
Я написал не вывод, а вызов. Например асинхронный вызов сервера.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340004
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ написал не вывод, а вызов. Например асинхронный вызов сервера.
моя опечатка, но вопрс остался
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340235
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторЯ написал не вывод, а вызов. Например асинхронный вызов сервера.
моя опечатка, но вопрс остался
Например асинхронный вызов сервера.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340275
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну хорошо.
я использую websocket, который обеспечивает полный дуплекс обмена сообщениями.
у меня есть в браузере две таблицы одна для операций юзера - ввод, и прочее.
вторая отображает определённые результаты необходимой обработки.
юзер ввёл данные - они улетеле на сервер серверное приложение получило их -сформировало данные для хранимки, запустило хранимку - результат множественный результсет - два набора данных
получив певый набор формирую HTML строку отправляю её клиенту, получаю второй результсет формирую вторую строку, отправляю клиенту.
клиент получив превую строку просто вставляет её в DOM , в зависимости от требования либо .append , либо innerHTML.
приходит второй результат так же, но в другое место.
так же можно послать и на другую владку и другому клиенту.
есть другой вариант - простой ввод числа - отправка на сервер, запись в базу, нет необходимости отправлять ответ клиенту.
следующий вариант - необходимо иметь на клиенте очень оперативную информацию , причём изменения не частые,
при стандарных решениях - клиенты должны запрашивать , при ws как только произошли изменения - рссылка всем клиентам.
также при отправке команды с клиента на сервер на длительную обработку чего-либо, допустим минут на 5, клиент может продолжать работать отправлять данные с этой страницы , получать данные. в тоже время длительный процесс может отправлять клиенту состояние обработки, формировать прогрессбар, отображать готовые данные.
надеюсь нормально рассказал об асснхронном вызове сервера?

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

Но с другой стороны, раз у Вас нет валидного примера, то остаётся что? То, что Ваш код выше в этом топике - вредный :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340288
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадя, спасибо конечно, но я не про это спрашивал.

Но с другой стороны, раз у Вас нет валидного примера, то остаётся что? То, что Ваш код выше в этом топике - вредный :)
вот поэтому я и просил уточнить, валидного примера чего - описанного ?
код описанный - вредный для чего?
он рабочий, вредность в нем в чём? только без громких слов.
насчёт eval нет вопроса про вредность - погугли eval is evil
что Прорамеру не понравилось присвоение через точку свойства?
то это чисто его предубеждение.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340296
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAвадя, спасибо конечно, но я не про это спрашивал.

Но с другой стороны, раз у Вас нет валидного примера, то остаётся что? То, что Ваш код выше в этом топике - вредный :)
вот поэтому я и просил уточнить, валидного примера чего - описанного ?
код описанный - вредный для чего?
он рабочий, вредность в нем в чём? только без громких слов.
насчёт eval нет вопроса про вредность - погугли eval is evil
что Прорамеру не понравилось присвоение через точку свойства?
то это чисто его предубеждение.
Мне что, заного всё переписывать? :) Что не понятно-то?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340298
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМне что, заного всё переписывать? :) Что не понятно-то?
кроме слов про модель я не видел.
этого явно не достаточно для называния кода вредным.
я прошу более развенутого ответа.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340300
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторМне что, заного всё переписывать? :) Что не понятно-то?
кроме слов про модель я не видел.
этого явно не достаточно для называния кода вредным.
я прошу более развенутого ответа.
И что в словах про модель не понятного?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340302
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, давайте начнём с простого.

Вы можете привести реальный пример, когда пользователь нажал на кнопку, запрос ущёл на сервер, сервер вернул какие-то данные и эти данные зачем-то были записаны как свойство кнопки?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340310
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВы можете привести реальный пример, когда пользователь нажал на кнопку, запрос ущёл на сервер, сервер вернул какие-то данные и эти данные зачем-то были записаны как свойство кнопки?
ну наконец-то разговор о конкретике.
самое главное в том коде (если речь идёт о 19847352 )
ничего такого нет и в помине.
там при клике добавляется свойство, которое будет достпно с наружи, и с помощью таймаута оно запускается.
таймаут нужен для демонстрации, что обработчик закончил работу, а функция будет вызвана. как бы снаружи.
и это очень даже живучий вариант. в применении к ws.
нажатие на кнопку отправляет в обработчике данные на сервер, а обработчик ответа находится там же.

модульность в полном виде.
кнопка как элемент на форме и обработчик полного цикла в одном объекте.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340314
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторВы можете привести реальный пример, когда пользователь нажал на кнопку, запрос ущёл на сервер, сервер вернул какие-то данные и эти данные зачем-то были записаны как свойство кнопки?
ну наконец-то разговор о конкретике.
Да я и раньше это спрашивал, другими словами: 19850706
вадясамое главное в том коде (если речь идёт о 19847352 )
ничего такого нет и в помине.
там при клике добавляется свойство
В чём смысл данного свойства можете толком объяснить?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340316
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякнопка как элемент на форме и обработчик полного цикла в одном объекте.
А о практике отделения представления от модели Вы слышали?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340324
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ чём смысл данного свойства можете толком объяснить?
данное свойство просто пример.
тэтот код
Код: javascript
1.
2.
3.
4.
5.
                window[ this.id].cc = {
                    ddd: function () {
                        console.log('ooooooooooo');
                    }
                };


внутри обработчика , т.е. нет дополнительного внешнего кода, за что ратует Програмер ( и я его в этом поддерживаю)
в место console.log('ooooooooooo'); можно написать всё что угодно
а входные параметры (которых в примере нет)
входные данные могут представлять собой html строку, которые можно вставить в dom, в нужном месте
я правильно понял вопрос и доходчиво ответил?
если что-то не так - попробую ещё раз
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340327
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадякнопка как элемент на форме и обработчик полного цикла в одном объекте.
А о практике отделения представления от модели Вы слышали?
это совершенно другой подход ...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340330
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторВ чём смысл данного свойства можете толком объяснить?
данное свойство просто пример.
тэтот код
Код: javascript
1.
2.
3.
4.
5.
                window[ this.id].cc = {
                    ddd: function () {
                        console.log('ooooooooooo');
                    }
                };



внутри обработчика , т.е. нет дополнительного внешнего кода, за что ратует Програмер ( и я его в этом поддерживаю)
в место console.log('ooooooooooo'); можно написать всё что угодно
а входные параметры (которых в примере нет)
входные данные могут представлять собой html строку, которые можно вставить в dom, в нужном месте
я правильно понял вопрос и доходчиво ответил?
если что-то не так - попробую ещё раз:)

Я прекрасно понимаю данный код и где он находится.

Вопрос: зачем пихать в DOM элемент window[this.id] объект { ddd: function () { ... } }? Просто потому что это первое, что пришло в голову?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340332
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAпропущено...

А о практике отделения представления от модели Вы слышали?
это совершенно другой подход ...
Конечно совершенно другой. Подход, при котором в DOM элементы не запихивают то, что к ним не относится :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340347
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПодход, при котором в DOM элементы не запихивают то, что к ним не относится :)
элемент кнопка , такой же объект как и любой другой .
и к нему можно обращаться по его id, как к простой переменной
и так же добавлять "свойства"
ни у кого не возникает вопрос куда заносятся данные jquery .data?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340350
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторПодход, при котором в DOM элементы не запихивают то, что к ним не относится :)
элемент кнопка , такой же объект как и любой другой .
и к нему можно обращаться по его id, как к простой переменной
и так же добавлять "свойства"
То есть таки выходит что это просто первое, что пришло в голову. Ясно.
На это я уже писал выше: "Да в JavaScript к любому объекту можно привязать любое свойство, но это не значит, что надо пихать что попало куда попало".
вадяни у кого не возникает вопрос куда заносятся данные jquery .data?
Повторю и для jQuery.data(): "Да jQuery.data() позволяет хранить произвольные данные, связанные с элементом, но это не значит, что надо пихать что попало куда попало". :)

Кстати отмечу, что хранить произвольные данные, связанные с элементом - это не тоже самое, что пихать их в свойства этого элемента.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340356
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКстати отмечу, что хранить произвольные данные, связанные с элементом - это не тоже самое, что пихать их в свойства этого элемента.
и что?
где сказано, что это нельзя?
просто потому, что ты этого не делал?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340369
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
вот ведь что понты и не знание делают
я вот сделал такое
Код: javascript
1.
$('#load').data('sdff','tttttttttttttttttt');


и ведь нашёл куда прячет jquery это.
и прям туда , куда и я.
т.е. ему можно, а мне - низя?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340396
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадят.е. ему можно, а мне - низя?
- ему можно, т.к. он не создаёт приложение. Это низкоуровневая библиотека.
Пиши библиотеку, а в прикладной код для создания ИС не лезь.
Ты собрался ИС без прокладок на ассемблере писать.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340402
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадянажатие на кнопку отправляет в обработчике данные на сервер, а обработчик ответа находится там же.
обработчик ответа - свойство кнопки?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340430
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
ну ты меня удивляешь, а для чего всё это добавляют в js?
для чего template, shadowRoot.
создание собственных элементов?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340433
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
а кто мешает это сделать?
jquery это сделал. пусть не в кнопке, но в своем объекте. обработчик это просто логическое название, по сути это просто объект, функция, выполняющая нужные мне функции.
что в этом такого? принять это религия не позволяет? знания? нет команды с выше?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340434
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
а смысл писать библиотеку? мне надо в данном , конкретном месте выполнить конкретное действие.
зачем городить лишний код.
повторное использование?
применение знаний предметной области уже вызывает неприятие, потому как не старшие товарищи не сказали об этом,?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340440
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВопрос: зачем пихать в DOM элемент window[this.id] объект { ddd: function () { ... } }?
а где ты увидел, что в dom запихнут элемент?


авторКонечно совершенно другой. Подход, при котором в DOM элементы не запихивают то, что к ним не относится :)
ты вообще в курсе о чем ты говоришь? что запихивается в дом? и что не относится к ним?
а если данные относятся?

авторвадя, спасибо конечно, но я не про это спрашивал.
так уточни о чем ты спрашивал?
автор сервер вернул какие-то данные и эти данные зачем-то были записаны как свойство кнопки?
а если я то что вернул сервер запишу в $('#кнопка').data('xxxx', data_from_server) - это будет нормально?
а если я запишу
так
var zzz=0;
.....
zzz=data_from_server;
это будет нормально?



причём
Код: javascript
1.
 $(document).on('click', '#xxs', function (e) {})


причём таким образом можно выбрать элементы по классу
а это

Код: javascript
1.
2.
3.
4.
5.
 window[ this.id].cc = {
                    ddd: function () {
                        console.log('ooooooooooo');
                    }
                };


присвоит "обработчик" конкретному элементу по его id.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340482
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Ты спросил почему jQuery можно, а тебе нельзя.
Я ответил что у них библиотека.
Ты не понял, твои проблемы.
Начни с вопроса почему земля круглая.
Или почему глобальные зло.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340504
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадячто в этом такого?
обычный лапшекод в "дельфийском" стиле - намешан транспорт и UI
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340509
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,
вот ведь что понты и не знание делаютТы наконец отмёл свои понты, осознал своё незнание и разобрался с jQuery.data()?
Похвально.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340515
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторКстати отмечу, что хранить произвольные данные, связанные с элементом - это не тоже самое, что пихать их в свойства этого элемента.
и что?
где сказано, что это нельзя?
просто потому, что ты этого не делал?
Плохой код он и возникает от того, что его можно писать, что его можно притащить из интернета и потом говорить, что так на вот том-то форуме предложили :)
И кто сказал, что я не писал плохой код? Писал.
Но стараюсь так больше не делать. Обсуждаю с коллегами, объясняю, почему выбран именно такой подход, в чём его плюсы.

А ты можешь объяснить? Ведь нет. Бе-ме, jQuery.data... И в итоге не найдя аргументы, ты перешёл на личности.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340518
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
а кто мешает это сделать?
jquery это сделал. пусть не в кнопке, но в своем объекте.
А нука покажи, где в jQuery так сделали? Там метод data() используется для хранения ссылок на обработчики тех событий, что связаны с элементами, а не на обработчики ответа сервера.
Или ты и в этом не видишь разницу?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340525
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторВопрос: зачем пихать в DOM элемент window[this.id] объект { ddd: function () { ... } }?
а где ты увидел, что в dom запихнут элемент?
Жжешь :) Для начала я выделил правильный поряд слов в своём предложении.

Плюс давай из твоих кусков кода сделаем работающий пример и посмотрим:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<!DOCTYPE html>
<html>
<head>
  <script data-require="jquery" data-semver="3.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
</head>
<body>
  <input id="xxs" type="button" value="Click me" />
  <script>
    $(document).on('click', '#xxs', function (e) {
      alert(window[this.id]);
    });
  </script>
</body>
</html>



Что выведет alert? Следующее: [object HTMLInputElement].
Что такое HTMLInputElement? Читаем документацию: https://msdn.microsoft.com/ru-ru/library/hh869710(v=vs.85).aspx

HTMLInputElement objectImplements the document object model (DOM) representation of the input element.

Есщё вопросы о DOM элементах есть?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340529
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторвадя, спасибо конечно, но я не про это спрашивал.
так уточни о чем ты спрашивал?
автор сервер вернул какие-то данные и эти данные зачем-то были записаны как свойство кнопки?
а если я то что вернул сервер запишу в $('#кнопка').data('xxxx', data_from_server) - это будет нормально?
а если я запишу
так
var zzz=0;
.....
zzz=data_from_server;
это будет нормально?
Я уж и не знаю, я вроде простыми словами писал. Давай попробуем по-твоему.

А если я то, что вернул серевер, запишу в $('body').data('xxx', data_from_server) - это будет нормально?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340766
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

авторЧто выведет alert? Следующее: [object HTMLInputElement].
Что такое HTMLInputElement? Читаем документацию: https://msdn.microsoft.com/ru-ru/library/hh869710(v=vs.85).aspx
он это и должен выдать.
после таки глупых выступлений, с тобой бестолку разговаривать..
любой HTMLInputElement - это объект


ты выводишь Объект , а хочешь увидеть что????
не позорился б
ты показал просто безграмотность
у надеялся у тебя чему-то научиться , а ты даже азов не знаешь ....

авторА если я то, что вернул серевер, запишу в $('body').data('xxx', data_from_server) - это будет нормально?
это будет нормально. хотя с твоими знаниями - .....
потому как body - это тот же объект.

ты знаешь что такое ОБЪЕКТ в javascript?
ну ты меня огорчил........
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340768
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадяИзопропил,
а кто мешает это сделать?
jquery это сделал. пусть не в кнопке, но в своем объекте.
А нука покажи, где в jQuery так сделали? Там метод data() используется для хранения ссылок на обработчики тех событий, что связаны с элементами, а не на обработчики ответа сервера.
Или ты и в этом не видишь разницу?
если ты не можешь понять приведённый код, и картинку - ваще п....ц
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340816
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,

авторЧто выведет alert? Следующее: [object HTMLInputElement].
Что такое HTMLInputElement? Читаем документацию: https://msdn.microsoft.com/ru-ru/library/hh869710(v=vs.85).aspx
он это и должен выдать.
после таки глупых выступлений, с тобой бестолку разговаривать..
любой HTMLInputElement - это объект


ты выводишь Объект , а хочешь увидеть что????
не позорился б
ты показал просто безграмотность
у надеялся у тебя чему-то научиться , а ты даже азов не знаешь ....

авторА если я то, что вернул серевер, запишу в $('body').data('xxx', data_from_server) - это будет нормально?
это будет нормально. хотя с твоими знаниями - .....
потому как body - это тот же объект.

ты знаешь что такое ОБЪЕКТ в javascript?
ну ты меня огорчил........
Знаешь, ты написал сейчас полную чушь.
Я тебе на пальцах показал, что твой window[this.id] - это DOM элемент.

Ты будешь спорить с тем, что window[this.id] - это DOM элемент, или согласишься?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340818
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAпропущено...

А нука покажи, где в jQuery так сделали? Там метод data() используется для хранения ссылок на обработчики тех событий, что связаны с элементами, а не на обработчики ответа сервера.
Или ты и в этом не видишь разницу?
если ты не можешь понять приведённый код, и картинку - ваще п....ц
Ты читаешь, что я пишу? Как реализовн метод jQuery.data() я в курсе.

Покажи другое, а именно: где и кем метод jQuery.data() используется для сохранения не обработчиков событий, а для сохранения обработчиков ответа сервера.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340820
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, слушай, а может ты английский не понимаешь? Если так, то могу перевести тот кусок из документации, что процитировал выше.
Может тогда ты что-то сообразишь.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340825
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторА если я то, что вернул серевер, запишу в $('body').data('xxx', data_from_server) - это будет нормально?
То есть всё опять свелось к тому, что не важно в какой объект, что пихать. Раз в JavaScript - это можно, то ты считаешь надо пихать и это нормально. Спасибо, твоя точка зрения ясна.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340852
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторокажи другое, а именно: где и кем метод jQuery.data() используется для сохранения не обработчиков событий, а для сохранения обработчиков ответа сервера.
ты глупый или изображаешь глупого?
jQuery.data() используется для сохранения объектов
а что из себя представляет объект - это другое дело

авторсохранения обработчиков ответа сервера. ты оказывается и в коде не разбираешься
обработчик ответов с сервера - это простая функция (тот же объект)
а названа она мной так - потому что логическая роль у неё такая.
потому что я так захотел, чтоб ответ с сервера вызвал именно её. и именно ответ на нажатие данной кнопки.
я могу это сделать для любого элемента. и могу вызвать любую функцию.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340859
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, ты это не пытайся уйти в сторону. Ты таки понял, что window[this.id] - это DOM элемент? Или не понял?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340868
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
и это и объект, а раз объект то все что можно делать с обеъктом - можно делать с ним
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340871
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяобработчик ответов с сервера - это простая функция (тот же объект)
Спасибо, кэп!

А пример-то будет реальный того, когда обработчик ответов с сервера с определённой целью пихается в свойства DOM элемента?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340873
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,
и это и объект, а раз объект то все что можно делать с обеъктом - можно делать с ним
Спасибо, кэп два раза :)

А теперь раскрой следующие свои вопросы 19853266 :
1. а где ты увидел, что в dom запихнут элемент?
2. ты вообще в курсе о чем ты говоришь? что запихивается в дом? и что не относится к ним?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340880
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К чему ты их вообще задал-то, раз понимаешь, что window[this.id] - это DOM элемент?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340889
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, я написал следующее:
skyANAВопрос: зачем пихать в DOM элемент window[this.id] объект { ddd: function () { ... } }?
А ты прочитал это так:
skyANAВопрос: зачем пихать в DOM элемент window[this.id]?
Верно?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340893
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, наверное мой косяк. Хотя если читать вопрос полностью, то я не понимаю, как его можно не так понять.

Но перефразирую: зачем пихать объект { ddd: function () { ... } } в элемент window[this.id]?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340894
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, кстати обрати внимание, что я назвал { ddd: function () { ... } } объектом задолго до того, как тебе приспичило прочитать мне лекцию о том, что такое объекты в JavaScript :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340896
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,
и это и объект, а раз объект то все что можно делать с обеъктом - можно делать с ним

Можно - не значит надо. Какой запущенный случай. Кстати, вадя, ты не заметил, что в диалоге со skyANA ты уже в самый низ по пирамиде скатился?
Ваш диалог уже даже не смешно читать, а скорее грустно и обидно.

Жаль беседа не realtime... На этом диалоге можно было бы поставить точку одной фразой "Коллеги, назовите любых 3 паттерна проектирования, дайте их краткое описание и назовите преимущества каждого из подходов". Их уже придумали несколько десятков, каждый из которых позволяет упростить решение той или иной задачи (в зависимости от требований)... Но я уверен, что с лёту ты бы даже и трёх не вспомнил, потому что очень вероятно что ничего о них не читал.

Не беда... я тоже был таким же самоуверенным упёртым самоучкой первых 3 года работы :)) Пока не понял того, что каждый новый проект - это очередной велосипед и что мне в каждом проекте приходится по новой писать то, что уже было ранее написано мной же, просто под новую структуру не подошло. Вот тогда я и задался вопросом как это делают другие и почему у других разработки какой-то мелочи занимает 10 часов, а я её только на протяжении 4 часов "придумываю" (структуру, схемы вызовов и т.д.)

И кстати до осознания этого факта я тоже считал что просто невозможно написать такой код, что бы его можно было потом повторно использовать в другом проекте не переписывая половину. Просто потому, что у меня до этого ещё ни разу не получалось такого. А если и получалось, то зачастую случайно или благодаря менеджеру-продажнику, который в ущерб бизнесу клиента убеждал его, что ему нужен именно такой функционал, который у нас уже написан (разумеется не сообщая ему об "уже написан"). У тебя явно такой же случай, а потому рекомендую углубиться в паттерны проектирования и почитать хотя бы про основные из них. Возможно поймёшь в чём сейчас не прав.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340905
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадя, я написал следующее:
skyANAВопрос: зачем пихать в DOM элемент window[this.id] объект { ddd: function () { ... } }?
А ты прочитал это так:
skyANAВопрос: зачем пихать в DOM элемент window[this.id]?
Верно?
нет неверно,
window[this.id] это не запихивание , а обращене
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340919
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAХорошо, наверное мой косяк. Хотя если читать вопрос полностью, то я не понимаю, как его можно не так понять.

Но перефразирую: зачем пихать объект { ddd: function () { ... } } в элемент window[this.id]?
это правильный вопрос.
чтоб не организовывать новый глобальный объект
и текст этого объекта (функции) находится внутри обработчика.
можно аналогичное сделать и вне обработчика jquery, но тогда надо знать имя id этого ообъекта.
внутри это обеспечивает this.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340924
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
я соглашусь про пирамиду, ксожалению, только таким методом мне удаётся его удалить от обвинений меня в чем то.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340947
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAвадя, я написал следующее:
пропущено...

А ты прочитал это так:
пропущено...

Верно?
нет неверно,
window[this.id] это не запихивание , а обращене
Что неверно? Мы уже выяснили, что window[this.id] - это DOM элемент.

Я спрашиваю: как ты до этого понял мой вопрос? Своими словами можешь сказать?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340952
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAХорошо, наверное мой косяк. Хотя если читать вопрос полностью, то я не понимаю, как его можно не так понять.

Но перефразирую: зачем пихать объект { ddd: function () { ... } } в элемент window[this.id]?
это правильный вопрос.
чтоб не организовывать новый глобальный объект
То есть решить проблему через костыль.
Спросишь, почему костыль? И я отвечу: когда ты что-то добавляешь в объект, то ты расширяешь его.
И когда ты расширяешь объект свойствами и функционалом, к нему не относящимися, то это явно костыль.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39340959
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и вообще данную логику следует вынести из обработчика события на кнопку в отдельный "класс".
Потому как
а. разные элементы управления на странице могут вызывать эту логику: кнопки, пункты контекстного меню, пункты тулбара;
б. писать логику в обработчиках - это лапшекод и моветон.

Что касается глобальных объектов и как вызвать определённый метод согласно строке, что пришла с сервера, то считаю, что необходимо вынести это в некий "класс" Dispatcher и не использовать названия методов, а использовать названия неких событий/экшенов.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341023
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДа и вообще данную логику следует вынести из обработчика события на кнопку в отдельный "класс".
Потому как
а. разные элементы управления на странице могут вызывать эту логику: кнопки, пункты контекстного меню, пункты тулбара;
б. писать логику в обработчиках - это лапшекод и моветон.

Что касается глобальных объектов и как вызвать определённый метод согласно строке, что пришла с сервера, то считаю, что необходимо вынести это в некий "класс" Dispatcher и не использовать названия методов, а использовать названия неких событий/экшенов.

skyANA, напиши пожалуйста простой пример иллюстрирующий описанный тобой подход. Не уверен что правильно тебя понял :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341039
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВопрос: зачем пихать в DOM элемент window[this.id]?
вопрос понят так: есть дерево DOM, и зачем в это дерево ещё запихивать(добавлять) элемент window[this.id]

window[this.id] - это элемент DOM, и в тоже время это объект. скажем так: с предопределёнными свойствами


авторТо есть решить проблему через костыль.
Спросишь, почему костыль? И я отвечу: когда ты что-то добавляешь в объект, то ты расширяешь его.
И когда ты расширяешь объект свойствами и функционалом, к нему не относящимися, то это явно костыль.
по навешиванию ярлыков надо быть осторожнее
когда ты что-то добавляешь в объект, то ты расширяешь его. согласен полностью.
И когда ты расширяешь объект свойствами и функционалом а вот тут полностью не согласен
почему ты считаешь что добавленный функционал не относится к нему? а я считаю что относится. он расширяет его .
jquery ведь делает тоже самое с .data, только чрез своё место.
jquery сначала добавляет свойство со случайным именем наш_эелемент.jquerynnnnnnnnn (где nnnnn случайное число), а уж потом юзерское свойство(объект).
jquery.data - считается нормально , а я добавляю - это костыль.?
отличие моего, что я могу добавить объект , который является функцией. и вызвать его выполнение.


авторДа и вообще данную логику следует вынести из обработчика события на кнопку в отдельный "класс".
Потому как
а. разные элементы управления на странице могут вызывать эту логику: кнопки, пункты контекстного меню, пункты тулбара;
б. писать логику в обработчиках - это лапшекод и моветон.

я б не стал так категорично. у меня логика построена так, что ответ от сервера и его обработка относится только к тому для чего предназначена, но если у меня несколько однотипных элементов, допустим ячеек в таблице, то вот этот обработчик
Код: javascript
1.
$(document).on('click', '.xxbbb', function (e) {


я повешу на класс, но у всех ячеек будет своё имя , допустим celltr_td (где tr номер стрроки, td- номер столбца)
и мой "обработчик ответа сервера" будет привязан к конкретной ячейке. и произведёт действие только для этой ячейки.


авторЧто касается глобальных объектов и как вызвать определённый метод согласно строке, что пришла с сервера, то считаю, что необходимо вынести это в некий "класс" Dispatcher и не использовать названия методов, а использовать названия неких событий/экшенов.
у меня и сделано нечто подобное, только использовать названия неких событий/экшенов. продумано и реализовано и проверено не одним проектом
идея позаимствована с хабра, только сильно доработана.

автора. разные элементы управления на странице могут вызывать эту логику: кнопки, пункты контекстного меню, пункты тулбара;
соглашусь с этим, но только потому, что ты не вкусил прелестей того, что можно добиться, то что я написал про асинхронность - маленькая часть этого.
а логика в обработчиках очень простая в 90% - приходит html строка и просто вставляется куда надо. это самое быстрое.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341046
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

WebSocket.onmessage как у тебя устроен?
...
Рейтинг: 0 / 0
Автоматический обработчик 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
Автоматический обработчик html форм на JS
    #39341220
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявот для браузеров это была проблема
XMLHttpRequest появился гораздо раньше WebSocket

нравится WebSocket - и хорошо, мне он тоже нравится( кроме маразма с обязательностью маски для передачи от клиента)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341221
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяэто код, в котором показано как это работает
а как это соотносится с темой топика?
Помню в теме ангуляр мы тоже твой сокет рассматривали.
Может модератора прикрепить топик вверху с 3-мя идеями?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341226
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSocket так WebSocket - всё хорошо.

Диспетчеризация сообщений на клиенте хромает.

в глобальное пространство имён помещаются функции-обработчики всех типов сообщений,
отсутствие обработчика - вызывает ошибку (ну не интересно клиенту слушать некоторые уведомления от сервера)

подписки на сообщения - нет ( у сообщения, посылаемого сервером, может быть более одного подписчика)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341230
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
начинается всё с "протокола"
идея взята с хабра, моя доработка.
первая часть - команда. она отделена от остальной части разделителем , я использую |
команда представляет собой имя функции , которая и будет обработывать данные.
из-за определённых условностей имена формализированы до полной абстакции
: 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);
                };



некоторые незначительные тонкости описании пропущены
вот этот весь код предлагается вместо JSON.parse(str).
Так?
Вместо 1 строки при AJAX?
Как преобразовать такую строку в массив ?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341232
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяне возможность инициировать передачу сервером
Long Polling - материалов в сети достаточно
для браузеров это костыль, но люди делали и у них работало.

автора если он в данных? (в названии товара легко может затесаться, например)
передача данных
выглятид так
$(document).on('click', '№xxbbb', function (e) {
con.send('xxx33|'+n+'®'+j);
});
разделитель можно поставить любой, в любом месте свой, гарантированно не задейсвованный.

автор\x1f ничуть не сложнее, чем Alt0174,
а для отладки - всяко нужно выводить форматированный текст.
очень хорошо, проверю, просто не было проблемой, поэтому и не заморачивался.

1. ajax :) - не правильно выразился про асинхронность, виноват, имелось в виду что не надо отслеживать очередность отправления/прихода данных.
2. когда такое надо? Почему не ответить одним разом? не часто, но выручает очень выгодно, к примеру когда хранимка возвращает множественный резульсет, а на клиенте разные обработчики, это проще, чем данные разделять и отправлять в разные места.
3. согласен, килобайт трафика на пустом запросе сэкономите.
4. не подходит под условие. Это и есть незамедлительная актуализация данных на клиенте (я и написал такое условие, потому как посчитал единственным условием, когда ws оправдан) категоричность заявления спорная. но в 99% верная.
тут я бы сказал польза не в опреративности, а в том что для получения обновлённых данных надо писать код, таймер, кнопку, или ещё какой-то механизм.
с ws просто функция - помещения новых данных в нужное место. если ты першёл в поле и хочешь с ним работать надо полслать запрос, дождаться ответа.
а так у тебя в поле заведомо достоверная инфа. а если получение ответа несколько длительно...показывать часики
5. а с http дела обстоят иначе? Оо тут имеется в виду , что один и тот же обработчик будет работать как с десктопом, андроид приложение, браузером. лишь бы была поддержка ws.
6. у ajax тоже есть статусы соединения, потому не преимущество есть , но не такая по функционалу
7. аналог https, потому не преимущество спорить не буду
8. сейчас это и аяксом делать можно согласен
да есть ещё плюс по ws можно связываться не только с родным сервером, но и с любым количеством других.
полуплюс - с одной страницы можно иметь несколько подключений к серверу
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341236
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадячто один и тот же обработчик будет работать как с десктопом, андроид приложение
на андроиде юзают retrofit . 130 штук зарплата
http://www.sql.ru/forum/1222047/android-razrabotchik-moskva-100-130-t-r-na-ruki?mid=19395575&hl=retrofit#19395575
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341239
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкроме маразма с обязательностью маски для передачи от клиента
расшифруй

авторвот этот весь код предлагается вместо JSON.parse(str).
Так?
нет, не правильно понят код
по мимо JSON.parse этот код вызывает обработчика данных каждго для набора данных свой.
ты можешь выделить с помщью JSON.parse команду
и используя window[ля](данные) вызвать обработчик

авторВместо 1 строки при AJAX?
проще не получится, если делать такой же фунционал

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


авторв глобальное пространство имён помещаются функции-обработчики всех типов сообщений,
отсутствие обработчика - вызывает ошибку (ну не интересно клиенту слушать некоторые уведомления от сервера)
это решается простой логикой сервера. нет такой проблемы.


авторподписки на сообщения - нет ( у сообщения, посылаемого сервером, может быть более одного подписчика)
ещё проще - на сервере решается без проблем, и клиенту не придут не нужные ему сообщения
эта проблема взята из распространённых примеров в сети

по 4 пункту - при отсутствии действий пользователя - обращений к серверу , на сервере при окончании времени сесии идет команда на клиента и его страница переходит на страницу авторизации.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341242
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадячто один и тот же обработчик будет работать как с десктопом, андроид приложение
на андроиде юзают retrofit . 130 штук зарплата
http://www.sql.ru/forum/1222047/android-razrabotchik-moskva-100-130-t-r-na-ruki?mid=19395575&hl=retrofit#19395575
я пробу сил на ws сделал на трекере
написал програмку считывания gps, и отправки на сервер, с него на страницу браузера на карту гугла.
получилось довольно интересно, и трафика сжирало очень мало. но gps + передача на соньке кушало много..
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341245
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВместо 1 строки при AJAX?

проще не получится, если делать такой же фунционал
я проверял, ради интереса.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341247
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторкроме маразма с обязательностью маски для передачи от клиента
расшифруй
RFC6455 section-5.3
4 байта на сообщение псу под хвост
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341248
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадянет, не правильно понят код
по мимо JSON.parse этот код вызывает обработчика данных каждго для набора данных свой.
ты можешь выделить с помщью JSON.parse команду
и используя window[ля](данные) вызвать обработчик
ещё подробнее.
Типа ты с сервера послал не только данные, но и
Код: sql
1.
{Имя: Вася; Принял:500|НажатьКнопку15}


Так?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341249
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторв глобальное пространство имён помещаются функции-обработчики всех типов сообщений,
отсутствие обработчика - вызывает ошибку (ну не интересно клиенту слушать некоторые уведомления от сервера)
это решается простой логикой сервера. нет такой проблемы.
речь о несчастном клиенте, причём здесь сервер?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341250
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя пробу сил на ws сделал на трекере
написал програмку считывания gps, и отправки на сервер, с него на страницу браузера на карту гугла.
получилось довольно интересно, и трафика сжирало очень мало. но gps + передача на соньке кушало много..
я тебе по заплату 130 штук и Retrofit, а ты мне про то как ты отдыхал этим летом.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341251
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя 1. ajax :) - не правильно выразился про асинхронность, виноват, имелось в виду что не надо отслеживать очередность отправления/прихода данных.
2. когда такое надо? Почему не ответить одним разом? не часто, но выручает очень выгодно, к примеру когда хранимка возвращает множественный резульсет, а на клиенте разные обработчики, это проще, чем данные разделять и отправлять в разные места.
3. согласен, килобайт трафика на пустом запросе сэкономите.
4. не подходит под условие. Это и есть незамедлительная актуализация данных на клиенте (я и написал такое условие, потому как посчитал единственным условием, когда ws оправдан) категоричность заявления спорная. но в 99% верная.
тут я бы сказал польза не в опреративности, а в том что для получения обновлённых данных надо писать код, таймер, кнопку, или ещё какой-то механизм.
с ws просто функция - помещения новых данных в нужное место. если ты першёл в поле и хочешь с ним работать надо полслать запрос, дождаться ответа.
а так у тебя в поле заведомо достоверная инфа. а если получение ответа несколько длительно...показывать часики
5. а с http дела обстоят иначе? Оо тут имеется в виду , что один и тот же обработчик будет работать как с десктопом, андроид приложение, браузером. лишь бы была поддержка ws.
6. у ajax тоже есть статусы соединения, потому не преимущество есть , но не такая по функционалу
7. аналог https, потому не преимущество спорить не буду
8. сейчас это и аяксом делать можно согласен
да есть ещё плюс по ws можно связываться не только с родным сервером, но и с любым количеством других.
полуплюс - с одной страницы можно иметь несколько подключений к серверу

1. Новую формулировку про "не надо отслеживать очередность отправления/прихода данных" не понял. Прокомментируй пожалуйста более подробно что это за проверка и когда в ней появляется необходимость (которой в ws соответственно нет)
2. К сожалению и эту формулировку я тоже не понял. Зачем отправлять в разные места, если можно всё это отправить одним ответом на клиента в виде того же json например?
3. ОК
4. 99%. Почти полное ОК (как у врачей... 99.9% с учётом непредсказуемой случайности) :))
5. Один и тот же? То есть ты хочешь js обработчик (написанный для браузера) вклинить в C++ код в десктопной реализации? Это как?! Поясни более подробно фразу "один и тот же обработчик"
6. ws статусы шире? А что в нём доступно такого, что не доступно в ajax статусах?
7. ОК
8. ОК
9. "ws можно связываться не только с родным сервером, но и с любым количеством других" - а с ajax дела обстоят иначе Оо
10. "с одной страницы можно иметь несколько подключений к серверу" - а с ajax разве нельзя? Оо
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341252
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторPetro123,

Типа ты с сервера послал не только данные, но и

{Имя: Вася; Принял:500|НажатьКнопку15}
нет
нажимать не надо
фффф|данные
ФФФФ -это имя функции(в общем случае)
Имя: Вася; Принял:500 - если это данные , то их
а ФФФФ вставит , или сделает с данными всё , что в ней прписано
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341255
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИмя: Вася; Принял:500 - если это данные
в json - никак не передать параметры регулярным образом и произвольной сложности?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341256
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
{function(Заменить Васю на Петю)|Имя: Вася; Принял:500|}


Это отправляется на сервер? Офигеть! ))
1. А в JSON я не могу функцию отправить? Если захочу?
2. Зачем это нужно? Может ещё вёрстку добавим? И CSS?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341257
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

авторречь о несчастном клиенте, причём здесь сервер?
потому что за распространение сообщений с сервера отвечает сервер, и подписка организуется на сервере


авторя тебе по заплату 130 штук и Retrofit, а ты мне про то как ты отдыхал этим летом.
после твоей критики я боюсь куда нибудь пробоваться

автор4 байта на сообщение псу под хвост
чем больше сообщение тем кпд использования выше
и по сравнению с ajax -это мизер
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341259
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпосле твоей критики я боюсь куда нибудь пробоваться
не поведёмся)). Это у тебя тонкий ход прожжённого полемиста)).
"Сами мы не местные.....помогите кто чем сможет"
"Москва слезам не верит"
))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341262
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Код: sql
1.
{function(Заменить Васю на Петю)|Имя: Вася; Принял:500|}



Это отправляется на сервер? Офигеть! ))
1. А в JSON я не могу функцию отправить? Если захочу?
2. Зачем это нужно? Может ещё вёрстку добавим? И CSS?
боюсь предположить, что сервере творится ))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341265
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Новую формулировку про "не надо отслеживать очередность отправления/прихода данных" не понял. Прокомментируй пожалуйста более подробно что это за проверка и когда в ней появляется необходимость (которой в ws соответственно нет)

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

2. К сожалению и эту формулировку я тоже не понял. Зачем отправлять в разные места, если можно всё это отправить одним ответом на клиента в виде того же json например?
отправить можно, но придётся делать дополнительную обработку по разделению данных
у меня также было что эти обработчики работали и по отдельности.

3. ОК
4. 99%. Почти полное ОК (как у врачей... 99.9% с учётом непредсказуемой случайности) :)) -
я дал и более расширенное толкование.


5. Один и тот же? То есть ты хочешь js обработчик (написанный для браузера) вклинить в C++ код в десктопной реализации? Это как?! Поясни более подробно фразу "один и тот же обработчик"

обработчик на сервере. т.е. серверу всё равно кто является клиентом

6. ws статусы шире? А что в нём доступно такого, что не доступно в ajax статусах?

https://learn.javascript.ru/websockets#коды-закрытия
но есть ещё и пользовательские
7. ОК
8. ОК
9. "ws можно связываться не только с родным сервером, но и с любым количеством других" - а с ajax дела обстоят иначе Оо
отстал от жизни.... :)

10. "с одной страницы можно иметь несколько подключений к серверу" - а с ajax разве нельзя? Оо
можно :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341266
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадянасколько я помню , в ajax на каждый запрос должен придти ответ , и если отправлено два запроса первый долгий, второй быстрый, то ответ второго посчитается как ответ на первый.
это может случиться только в жутко кривой реализации сервера
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341267
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Код: sql
1.
{function(Заменить Васю на Петю)|Имя: Вася; Принял:500|}


Это отправляется на сервер? Офигеть! ))
1. А в JSON я не могу функцию отправить? Если захочу?
2. Зачем это нужно? Может ещё вёрстку добавим? И CSS?
ты не понял.
на сервер будет отправлено
имя метода=команда
idВаси,IdПети
этобудет примерно так
xxx44|454,6556
на сервере вызовется метод xxx44с параметром-строкой param 454,6556
в методе вызов хранимки с парм
con_.prepareCall("{call хранимк1("+param+")}");)
и всё
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341268
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадянасколько я помню , в ajax на каждый запрос должен придти ответ , и если отправлено два запроса первый долгий, второй быстрый, то ответ второго посчитается как ответ на первый.
это может случиться только в жутко кривой реализации сервера
кривая или нет - это надо отслеживать
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341269
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

т.е . не отправлять данные первого долгого запроса.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341270
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,

т.е . не отправлять данные первого долгого запроса.
не правильно не отравлять клиенту ответ сторого быстрого запроса.
я же могу во время долгого отарвить и получить ещё кучу быстрых и не очень запросов
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341271
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,

т.е . не отправлять данные первого долгого запроса.
не понял нихера - есть несколько параллельно исполняемых запросов - на каждый нужно дать свой ответ,
как ответы могут "перемешаться" ?

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

а идентификатор вызова(транзакции) где?
выдавши пару запросов -
xxx44|454,6556
xxx44|1454,26556
как различить на какой ответ пришёл?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341273
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяты не понял.
на сервер будет отправлено
имя метода=команда
idВаси,IdПети
этобудет примерно так
xxx44|454,6556
на сервере вызовется метод xxx44с параметром-строкой param 454,6556
в методе вызов хранимки с парм
con_.prepareCall("{call хранимк1("+param+")}");)
и всё
ну да. Я запутался тут.
Т.е. это выше простыня отправки на сервер
Код: sql
1.
{БДхранимкаРассчитатьЗарплату|Вася,Петя,с 12-го сентября99г.}


так?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341274
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
вопрос прежний. Почему не JSON с зарплатой 130? ))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341276
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Код: sql
1.
{БДхранимкаРассчитатьЗарплату|Вася,Петя,с 12-го сентября99г.}


интересно, какой синтаксис будет при передаче BOM(Bill of materials), например?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341277
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилвадяИзопропил,

т.е . не отправлять данные первого долгого запроса.
не понял нихера - есть несколько параллельно исполняемых запросов - на каждый нужно дать свой ответ,
как ответы могут "перемешаться" ?

что для этого нужно вытворить?
т.е. ты на каждый запрос на сервер пишешь свою страницу обработки?
я могу с этим ошибаться, но когда работал с ajax, тогда это было проблемой,
возможно мы просто не понимаем друг друга
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341278
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор{БДхранимкаРассчитатьЗарплату|Вася,Петя,с 12-го сентября99г.}
на сервер будет отпарвлено
xxxx22|idВаси,idПети,'1999-09-12'
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void xxxx22(String param) {
        System.out.println(param);
        try (Connection con_ = DriverManager.getConnection(Singleton.getBASE(), Singleton.getBASE_LOGIN(), Singleton.getBase_password());
                CallableStatement proc_ = con_.prepareCall("{call hhhhh("+param+")}");) {
            rs = proc_.executeQuery();
            rs.next(); //при необходимости возврата 
            webSocket_.send("xxxx22|"+rs.getString("d"));
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341279
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадят.е. ты на каждый запрос на сервер пишешь свою страницу обработки?
я могу с этим ошибаться, но когда работал с ajax, тогда это было проблемой,
возможно мы просто не понимаем друг друга
явно не понимаем.

в сервлет пришёл запрос, на него нужно дать ответ, как и что здесь можно перепутать и отправить не туда?
Код: java
1.
    public void doGet(HttpServletRequest request,  HttpServletResponse response)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341280
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: java
1.
DriverManager.getConnection(Singleton.getBASE(), Singleton.getBASE_LOGIN(), Singleton.getBase_password());

про JNDI когда-нибудь что-нибудь слышал?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341282
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
т.е на каждый запрос пишется такое
автор e.preventDefault();
var frm = $(this);

$.ajax({
url: frm.attr('action'),
type: frm.attr('method'),
data: frm.serialize(),
success: eval(frm.data('success')) || function(data){
//дефолтный обработчик, если у формы не определён success метод
},
error: eval(frm.data('error')) || function(error){
//дефолтный обработчик, если у формы не определён success метод
alert('got error');
}
});
});

var errorHandler = function (error){
alert('got special error');
};
отличие только в данных или ещё в url: frm.attr('action'),?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341283
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпро JNDI когда-нибудь что-нибудь слышал?
слышал, но однажды обжогся на чужой библиотеке боюсь пользоваться,
тем более что подключение к mysql находящейся на том же железе не затратно.
признаю, что можно сделать это не так.....
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341284
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя1. Новую формулировку про "не надо отслеживать очередность отправления/прихода данных" не понял. Прокомментируй пожалуйста более подробно что это за проверка и когда в ней появляется необходимость (которой в ws соответственно нет)

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

2. К сожалению и эту формулировку я тоже не понял. Зачем отправлять в разные места, если можно всё это отправить одним ответом на клиента в виде того же json например?
отправить можно, но придётся делать дополнительную обработку по разделению данных
у меня также было что эти обработчики работали и по отдельности.

3. ОК
4. 99%. Почти полное ОК (как у врачей... 99.9% с учётом непредсказуемой случайности) :)) -
я дал и более расширенное толкование.


5. Один и тот же? То есть ты хочешь js обработчик (написанный для браузера) вклинить в C++ код в десктопной реализации? Это как?! Поясни более подробно фразу "один и тот же обработчик"

обработчик на сервере. т.е. серверу всё равно кто является клиентом

6. ws статусы шире? А что в нём доступно такого, что не доступно в ajax статусах?

https://learn.javascript.ru/websockets#коды-закрытия
но есть ещё и пользовательские
7. ОК
8. ОК
9. "ws можно связываться не только с родным сервером, но и с любым количеством других" - а с ajax дела обстоят иначе Оо
отстал от жизни.... :)

10. "с одной страницы можно иметь несколько подключений к серверу" - а с ajax разве нельзя? Оо
можно :)

1. Ошибаешься, только что проверил, всё добавляется в правильные дивы, никто ничего не путает.
Код: 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.
<?php
    if(!empty($_GET['delay'])){
        sleep($_GET['delay']);
        echo "delay:".$_GET['delay'];
        exit;
    }
?>
<!doctype html>
<html lang="en">

<head>
    <title>test</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
    $(document).on('ready', function(){
        $.ajax({
            url: '/test.php',
            type: 'get',
            data: {delay: 10},
            success: function(data){
                $('.div1').html(data);
            }
        });
        $.ajax({
            url: '/test.php',
            type: 'get',
            data: {delay: 1},
            success: function(data){
                $('.div2').html(data);
            }
        });
    });
    </script>
</head>

<body>
<div class="div1"></div>
<div class="div2"></div>
</body>
</html>



2. Продолжаю не понимать. Можешь пример накатать, когда с ajax приходится выполнять лишние действия, а с ws этого не требуется?
3. ОК
4. Это ты про таймер лишний? то есть про лишнюю строку кода вида setInterval? Ну ладно. Давай не будет такие мелочи учитывать. Я же не говорю, что инициализация websocket намного больше чем $.ajax() Так что давай считать ОК, потому что указанный аргумент незначим
5. с ajax так же. Кто бы с сервером по http протоколу не общался: десктоп, mobile или браузер - серверу наплевать
6. вики кода ответов http ... что-то мне кажется что http протокол явно переплюнул ws по количеству возможных статусов ответов :) А ведь ещё и сам ajax позволяет отловить факт обрыва связи :)
7. ОК
8. ОК
9. ОК
10. ОК
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341285
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу
автор public void doGet(HttpServletRequest request, HttpServletResponse response)
давай замнём, для яности :)
потому что я не могу счас вспомнить всю конкретику данной проблемы, к сожалению...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341288
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяслышал, но однажды обжогся на чужой библиотеке боюсь пользоваться,
какая ещё библиотека, реализацию обеспечивает сервлет контейнер

можно конечно не доверять Tomcat, JBoss, Jetty ........
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341290
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор4. Это ты про таймер лишний? то есть про лишнюю строку кода вида setInterval? Ну ладно. Давай не будет такие мелочи учитывать. Я же не говорю, что инициализация websocket намного больше чем $.ajax() Так
ну не только таймер....просто некая логика, которой нет в ws.
авторЯ же не говорю, что инициализация websocket намного больше чем $.ajax() Так
но только один раз далее просто вызов как простой функции
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341291
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяслышал, но однажды обжогся на чужой библиотеке боюсь пользоваться,
какая ещё библиотека, реализацию обеспечивает сервлет контейнер

можно конечно не доверять Tomcat, JBoss, Jetty ........
там бы не чисто мой прект, и там вызывались методы из другой библиотек, в итоге оказывались не закрытые коннекты к базе, которые пришлось решить перезапуском mуsql и кошки по крону
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341293
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропила идентификатор вызова(транзакции) где?
выдавши пару запросов -
xxx44|454,6556
xxx44|1454,26556
как различить на какой ответ пришёл?


или ни в коем случае нельзя выдать параллельно две "команды" с одним именем(ответы "перемешаются")?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341297
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавтор4. Это ты про таймер лишний? то есть про лишнюю строку кода вида setInterval? Ну ладно. Давай не будет такие мелочи учитывать. Я же не говорю, что инициализация websocket намного больше чем $.ajax() Так
ну не только таймер....просто некая логика, которой нет в ws.
авторЯ же не говорю, что инициализация websocket намного больше чем $.ajax() Так
но только один раз далее просто вызов как простой функции

Хорошо. пускай 4 в пользу ws :) Как ты писал "полуплюс". Вроде как небольшое излишество ajax перед ws (но по сути не являющееся значимым)

получаем в итоге:
1. ОК (аякс справляется)
2. жду ответа
3. ОК
4. WS
5. жду ответа
6. жду ответа
7. ОК
8. ОК
9. ОК
10. ОК

Почти все пункты уже закрыли :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341333
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
5 действительно ,серверу c ajax без разницы, кто его клиент,
6 ws отслеживает это фоном, и при обрыве може пересоединиться, или сообщить юзеру. ajax только на момент отправки, ожидания.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341349
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
{ПакетОракла.РассчитатьЗарплату|idВаси,idПети,'1999-09-12', '2016-35-46-12-00'}


т.е. имён параметров у тебя нету. Строго первым идёт имя хранимки, даже если это select version.
Потом параметры, которые при рефакторинге добавлять только в конец. По имени нельзя.
Так?
Контроль типов для даты и нецелых чисел отсутствует.
Так?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341350
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще то, такой формат передачи данных через разделитель, ещё на информатике в 1-м классе дают.
Потом долго объясняют чем он плох в большой системе.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341361
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Код: sql
1.
{ПакетОракла.РассчитатьЗарплату|idВаси,idПети,'1999-09-12', '2016-35-46-12-00'}


т.е. имён параметров у тебя нету. Строго первым идёт имя хранимки, даже если это select version.
Потом параметры, которые при рефакторинге добавлять только в конец. По имени нельзя.
Так?
Контроль типов для даты и нецелых чисел отсутствует.
Так?
ты всё понимаешь слишком в упор. :)
ещё раз - скажем та : использование хранимок аминистративно/политическое решение.
имена метода и хранимки у меня совпадают только для того чтоб проще было проследить цепочку
первым идет имя метода из java, дальше идут параметры.
почему нет имен, а id - для базы - имена могут повторяться id -уникальны
у меня при построении (к примеру) таблицы для каждой строки есть атрибу datd-id с id записи (не будем углубляться в тонкости)
поэтому передавать само текстовое значение как идентификатор не надо.
вместо мокго формирования данных- можно передать и json- там порядок не важен.
приведённый пример показывает что, можно применять для самх элеметарных действий. увеличивать сложность - пожалуйста
можно и с клиента гнать json , просто этого до сих пор не требовалость
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341362
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКонтроль типов для даты и нецелых чисел отсутствует.
это можновставить в любом месте, и при вводе дробных чисел в браузере у меняэто контролируется - юзер может ввести что угодно, просто автоматом запятая заменяется на точку, проверяется является ли введённое числм и прочее при необходимости
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341363
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
2 - реальный пример - при загрузке страницы 3 таблицы пустые , но в процессе работы таблицы работают сами по себе, и обновление идет своим "обработчиком" , на и первым шагом идет один запрос на вывод этих таблиц, сервер возвращает три ответа , свой для каждой таблицы
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341369
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилИзопропила идентификатор вызова(транзакции) где?
выдавши пару запросов -
xxx44|454,6556
xxx44|1454,26556
как различить на какой ответ пришёл?


или ни в коем случае нельзя выдать параллельно две "команды" с одним именем(ответы "перемешаются")?
вадя,

что с этим?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341382
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
такой проблемы просто не существует, попробую объяснить
xxx44|454,6556
xxx44|1454,26556

xxx44 - один метод на сервере один, алгоритм обработки, один формат ответа
к прмеру - у тебя N ячеек таблицы и ты очень шустрый юзер , вводишь очень шустро и отправляешь
при каждом получении сервер обрабатывает в своём потоке и отправляет обратно
соответственно на клиенте обработчик с именем xxx44 -он один, и все приходящие ответы он должен раскидать по ячейкам откуда произошел запрос на сервер.
т.к. обработчик один в ответе должны быть координаты ячейки куда поместить ответ - поэтому в каой бы последовательности и скороати всё это не работало путаницы не будет
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341402
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123
Код: sql
1.
{ПакетОракла.РассчитатьЗарплату|idВаси,idПети,'1999-09-12', '2016-35-46-12-00'}



т.е. имён параметров у тебя нету. Строго первым идёт имя хранимки, даже если это select version.
Потом параметры, которые при рефакторинге добавлять только в конец. По имени нельзя.
Так?
Контроль типов для даты и нецелых чисел отсутствует.
Так?
ты всё понимаешь слишком в упор. :)

===== беру пример с тебя - как можно проще

имена метода и хранимки у меня совпадают только для того чтоб проще было проследить цепочку

=== конечно. Если сделать CREATE\DELETE\GET\POST вместои имени хранимки, то мы получим REST))). Который уже в заголовке запроса и лишён всех твоих недостатков.
Итого вопрос: Что взять если НЕ имена хранимок?

почему нет имен, а id - для базы - имена могут повторяться id -уникальны
у меня при построении (к примеру) таблицы

====== достал ты своими ячейками. Мы о большой системе говорим.
...... увеличивать сложность - пожалуйста

======= наконец -то! Из за того что нет параметров и контроля типов мы вводим JSON и выкидываем твои 100 строк отправки.

можно и с клиента гнать json , просто этого до сих пор не требовалость
достигнут п.3 флейма: "Мне это не требовалось".
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341405
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
хорош флеймить. Будем ссылаться на транспорт Вади в этом топике и на FW вади в топике ангуляр.
Больше ничего нового нет?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341418
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторимена метода и хранимки у меня совпадают только для того чтоб проще было проследить цепочку

=== конечно. Если сделать CREATE\DELETE\GET\POST вместои имени хранимки, то мы получим REST))). Который уже в заголовке запроса и лишён всех твоих недостатков.
Итого вопрос: Что взять если НЕ имена хранимок?
я уже говорил почему выбраны хранимки
можно обойтись без них
в методе входные параметры можно обработать простым запросом одним или несколькими,
никто-не запрещает.
CREATE\DELETE\GET\POST ограничивает функционал -
я просто вызываю метод по имени и делаю та всё что угодно - мне так кажется проще


автор====== достал ты своими ячейками. Мы о большой системе говорим.
...... увеличивать сложность - пожалуйста


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

автор======= наконец -то! Из за того что нет параметров и контроля типов мы вводим JSON и выкидываем твои 100 строк отправки.

стоимость отправки у меня получается минимальна , я отправляю метод обработки и необходимые данные для него - не сервере происходит обработка в этом методе какой угодно сложности.

если модераторы перенесут в друго топик - ради бога.
будут вопросы - отвечу
будут идеи и предложения проверю
дискуссию как с Изопропил я поддерживаю
кого заинтересует - помогу, чем смогу
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341423
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
основное, что меня сподвигло на переход на ws
именно актуальность данных у клиента
делая ситему для заказов , когда операторы принимают заказ по телефону и готовят счёт , столкнулся с проблемой наличия товара,
и когда один уже заказал но не отправил на сервер, и второй тоже самое и вот вопрос когда заканчивают заказ кто получит ? приходилось городить очень сложный механизм
кода с ws это решается очень просто
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341444
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадямне не требуется передавать на сервер огромные данные
да нет никаких огромных данных.
Если передавать по ws данные через палочку или в виде JSON то нет никакой особой разницы.
НЕТ НИКАКИХ ОГРОМНЫХ данных.
Либо ты не можешь разговаривать доступным языком.
Что в твоём коде выше такого особенного кроме отправки данных через палочку и протокол сокет?
Вопрос риторический.
Проехали с этой темой и развивайся дальше как профессионал.
Удачи тебе в новых темах.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341449
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
5 действительно ,серверу c ajax без разницы, кто его клиент,
6 ws отслеживает это фоном, и при обрыве може пересоединиться, или сообщить юзеру. ajax только на момент отправки, ожидания.

Было бы странно, если бы технология типа "запрос-ответ" следила бы за доступностью ресурса в реальном времени даже тогда, когда с ним отсутствует активное соединение. Если не требуется моментальная актуализация данных/состояния, то я его с помощью ajax актуализирую в момент следующего обновления (например через 10-20 секунд), когда при попытке соединения получу ошибку. Потому это всё к тому же вопросу незамедлительной актуализации. Ещё аргументация в пользу статусов ws есть?

1. ОК
2. :)) под примером я имел ввиду пример кода. Я просто не могу понять о чём ты говоришь, а код это поможет прояснить, потому что он намного более формален чем русский. Его нельзя правильно прочитать и неправильно понять... а русский можно потому, что мы склонны недоговаривать и упускать "очевидные" мелочи.
3. ОК
4. WS
5. ОК
6. жду ответа
7. ОК
8. ОК
9. ОК
10. ОК
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341450
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадят.к. обработчик один в ответе должны быть координаты ячейки куда поместить ответ
значит они должны быть и запросе - понятно, вот такой идентификатор вызова.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341454
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрБыло бы странно, если бы технология типа "запрос-ответ" следила бы за доступностью ресурса в реальном времени даже тогда, когда с ним отсутствует активное соединение
так сделать нужно постоянное активное соединение

висит запрос ajax(с таймаутом секунд 30), секунд через 25 сервер отвечает, что ничего интересного нет, клиент перезапускает запрос.
а если что интересное для клиента есть - посылает данные.


PS
если нужна "незамедлительная" актуализация при помощи ws - ping-pong пакетами обмениваться нужно,
иначе разрыв TCP соединения быстро не отловить и быстро не сделать реконнект
что делать, если сервер 4 секунды не отзывается?
как должна повести себя "незамедлительная актуализация"?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341465
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПрограмёрБыло бы странно, если бы технология типа "запрос-ответ" следила бы за доступностью ресурса в реальном времени даже тогда, когда с ним отсутствует активное соединение
так сделать нужно постоянное активное соединение

висит запрос ajax(с таймаутом секунд 30), секунд через 25 сервер отвечает, что ничего интересного нет, клиент перезапускает запрос.
а если что интересное для клиента есть - посылает данные.


PS
если нужна "незамедлительная" актуализация при помощи ws - ping-pong пакетами обмениваться нужно,
иначе разрыв TCP соединения быстро не отловить и быстро не сделать реконнект
что делать, если сервер 4 секунды не отзывается?
как должна повести себя "незамедлительная актуализация"?

насчёт ping-pong - аргумент... об этом не подумал :) Но в условиях беседы не значимо. Мы вопрос актуализации данных сразу отмели, потому не зависимо от того проще это делается на ws или нет, итог один - это касается незамедлительной актуализации.

насчёт long poll, тут с вадей согласен. Нету смысла использовать технологию, предназначенную не для этого если есть более удобный вариант - websockets :) Я и защиту ajax провожу, в принципе, по тому же сценарию: зачем ws там, где справляется технология попроще. Понятное дело что с помощью ws можно сделать то же, что и делает ajax... и наоборот ajax можно подкостылить так, что бы наделить его функционалом ws... да только зачем? Это попытка приспособить молоток для развинчивания гаек, а отвёртку для забивания гвоздей Разумеется, когда нету нужных инструментов под рукой это может быть полезным, да только у нас то они "под рукой"!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341479
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр ,
2 попробую изобразить наиболее наглядный пример...
6 вроде как договорились , что основное преимущество реальное состояние соединения
https://learn.javascript.ru/websockets#ping-pong, всё встроено в ws/

автортак сделать нужно постоянное активное соединение
висит запрос ajax(с таймаутом секунд 30), секунд через 25 сервер отвечает, что ничего интересного нет, клиент перезапускает запрос.
а если что интересное для клиента есть - посылает данные.

очень достойное решение.
только когда у тебя 1 клиент , а если 1000+
причём они не синхронизтрованы и эти запросы могут .....
и всё это пустая нагрузка на сервер
т.е. можно добавить плюсом к 6 пункту

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

авторда нет никаких огромных данных.
Если передавать по ws данные через палочку или в виде JSON то нет никакой особой разницы.
НЕТ НИКАКИХ ОГРОМНЫХ данных.
Либо ты не можешь разговаривать доступным языком.
Что в твоём коде выше такого особенного кроме отправки данных через палочку и протокол сокет?
Вопрос риторический.
ты не можешь толково описать проблему - я не могу на это вразумительно ответить - не могу понять тебя, как понимаю - так отвечаю
вот с Програмёр(ом) понятно, есть попытки понять друг друга.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341486
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр ,
2 попробую изобразить наиболее наглядный пример...
6 вроде как договорились , что основное преимущество реальное состояние соединения
https://learn.javascript.ru/websockets#ping-pong, всё встроено в ws/


нене. По поводу пункта 6 пока ещё не договорились. Как только мы сходимся во мнении (договариваемся) по какому-то пункту, я сразу отмечаю его в списке. Пока пункт 6 не отметил - значит мы пока ещё остаёмся каждый при своём мнении (ни с одной стороны не было такого неоспоримого аргумента, с которым согласился бы другой из нас)

Так... по пункту 2 значит ждём, а по пункту 6:
в чём именно проявляется преимущество этого "реального состояния" соединения? Что может случиться с соединением такого, что при работе через ajax мне придётся делать лишние телодвижения (или ситуация вообще станет неразрешимой), а ws сам всё решит без моего вмешательства? :))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341487
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятакое я считал , что это не требовало дополнительного уточнения....
а зачем серверу вообще чего-то знать о координатах какой-то ячейки?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341488
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяты не можешь толково описать проблему
- с дуба рухнул? У меня нет проблемы. Ты написал, что у тебя классно и НЕТ ОГРОМНЫХ данных.
Я ответил, что твоя фраза - враньё.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341496
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадятакое я считал , что это не требовало дополнительного уточнения....
а зачем серверу вообще чего-то знать о координатах какой-то ячейки?
ту может быть несколько вариантов применения - что б правильно записать в таблицу и пр.
и как основной для конкретного примера - просто протраслировать обратно клиенту, что б по этим координата вставить туда от куда пришли данные. это намного проще чем что-то где-то запоминать, повторно вычислячть.

Програмёр
2.
вызов при нажатии кнопки перехода по месецам
Код: javascript
1.
con.send('xxx32|' + this.year + '-' + this.month + '-01®' + this.id_user + '®' + this.id_net);


после обработки сервер в одном методе возвращает
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 webSocket_.send("xxx32_1|" + getDeysOfMoth(param));

 webSocket_.send("xxx32_2|" + getDaysOfWeek(param).toString())

     if (!d[1].equals("0")) {
            s.append("xxx32_3|<tr><td></td>");
            while (n < last) {
                s.append("<td class='nt n").append(++n).append("'></td>");
            }
            s.append("</tr>");
            webSocket_.send(s.toString());
        }
        webSocket_.send("xxx32|" + getDeysOfShoping(param).toString());
        getStatistic(d[0]);
        webSocket_.send("xxx31_getstatistic_m|" + getstatistic_m.toString());
        webSocket_.send("xxx31_getstatistic_t|" + getstatistic_t.toString());


обработка ответов
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 <%-- вывод главной таблицы --%>
            function xxx32(p) {
                document.getElementById('main_tbody').innerHTML = p;
                $('#month_up,#month_down,#year_up,#year_down').css('visibility', 'visible');
            }
            <%-- вывод строки дней месяца  --%>
            function xxx32_1(p) {
                $(tbl1).find('thead tr:eq(1)').empty().append(p);
            }
            <%-- вывод строки дней недели --%>
            function xxx32_2(p) {
                var s = p.split('®');
                $(tbl1).find('thead tr:eq(2)').empty().append(s[0]);
                $('#tbl1 thead tr:nth-child(1) th:nth-child(2)').attr('colspan', s[1]);
            }

...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341523
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр
2.
вызов при нажатии кнопки перехода по месецам
Код: javascript
1.
con.send('xxx32|' + this.year + '-' + this.month + '-01®' + this.id_user + '®' + this.id_net);


после обработки сервер в одном методе возвращает
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 webSocket_.send("xxx32_1|" + getDeysOfMoth(param));

 webSocket_.send("xxx32_2|" + getDaysOfWeek(param).toString())

     if (!d[1].equals("0")) {
            s.append("xxx32_3|<tr><td></td>");
            while (n < last) {
                s.append("<td class='nt n").append(++n).append("'></td>");
            }
            s.append("</tr>");
            webSocket_.send(s.toString());
        }
        webSocket_.send("xxx32|" + getDeysOfShoping(param).toString());
        getStatistic(d[0]);
        webSocket_.send("xxx31_getstatistic_m|" + getstatistic_m.toString());
        webSocket_.send("xxx31_getstatistic_t|" + getstatistic_t.toString());


обработка ответов
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 <%-- вывод главной таблицы --%>
            function xxx32(p) {
                document.getElementById('main_tbody').innerHTML = p;
                $('#month_up,#month_down,#year_up,#year_down').css('visibility', 'visible');
            }
            <%-- вывод строки дней месяца  --%>
            function xxx32_1(p) {
                $(tbl1).find('thead tr:eq(1)').empty().append(p);
            }
            <%-- вывод строки дней недели --%>
            function xxx32_2(p) {
                var s = p.split('®');
                $(tbl1).find('thead tr:eq(2)').empty().append(s[0]);
                $('#tbl1 thead tr:nth-child(1) th:nth-child(2)').attr('colspan', s[1]);
            }



Это реализация поверх написанного тобой кода? Тогда дава
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341525
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
глюкануло что-то...

Тогда давай код твоей библиотеки также включим в обсуждение. Я напишу ajax вызов на чистом js, возьмём твой вызов по ws и сравним где больше телодвижений и какой код сложнее? :))

Ну или давай тогда твою библиотеку временно "отключим" и реализуем описанный тобой функционал на чистом js :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341526
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
тыб объяснил
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341529
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

я уже показывал
19857242
это всё, что необходимо и достаточно для клиета - браузера
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341552
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяочень достойное решение.
только когда у тебя 1 клиент , а если 1000+
причём они не синхронизтрованы и эти запросы могут .....
и всё это пустая нагрузка на сервер
т.е. можно добавить плюсом к 6 пункту
vk.com - справляется
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341553
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрТогда давай код твоей библиотеки
какая библиотека. У него их не было никогда. Код разбросан по всем файлам и не вынесен в подключаемые скрипты. Компонента таблица - нету, т.к. задачи такой не стояло).
И делать никаких библиотек он не будет.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341570
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ПрограмёрТогда давай код твоей библиотеки
какая библиотека. У него их не было никогда. Код разбросан по всем файлам и не вынесен в подключаемые скрипты. Компонента таблица - нету, т.к. задачи такой не стояло).
И делать никаких библиотек он не будет.
вот интересно читать твои реплики, человека, который не вледеет темой а корчит из себя всезнайку
ты б прежде чем пукать в лужу, осмотрелся бы, чтоб никто не видел этого, а то как-то не по взрослому получается
или это у вас так принято?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341575
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Ты согласен, что мой код ниже повторяет полностью функционал твоего клиента, только работает не по твоему протоколу, а посредством отправки/получения json? То есть мой код умеет всё, что умеет код этих двух сообщений вместе взятых (без учёта той части, которая серверная, разумеется): 19857242 и 19858881

моя реализация твоего клиента
Код: 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.
<!doctype html>
<html lang="en">
<head>
    <title>test</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
        /*** судя по всему тут тоже что-то должно быть, но ты это пропустил. сужу по неизвестной переменной в функциях ***/

        /* вывод главной таблицы */
            function xxx32(p) {
                document.getElementById('main_tbody').innerHTML = p;
                $('#month_up,#month_down,#year_up,#year_down').css('visibility', 'visible');
            }
            /* вывод строки дней месяца  */
            function xxx32_1(p) {
                $(tbl1).find('thead tr:eq(1)').empty().append(p);
            }
            /* вывод строки дней недели */
            function xxx32_2(s) {
                $(tbl1).find('thead tr:eq(2)').empty().append(s[0]);
                $('#tbl1 thead tr:nth-child(1) th:nth-child(2)').attr('colspan', s[1]);
            }
        
        
        function mySpecialAjax(data){
            $.ajax({
                url: 'scriptReceiver.php',
                type: 'post',
                data: data,
                dataType: 'json',
                success: function(data){
                    for(var k in data){ //перебираем части ответа
                        try {
                            var func = data[k].func.split('.');
                            if(func[1]){
                                window[func[0]][func[1]](data[k].data);
                            }else{
                                window[func[0]](data[k].data);
                            }
                        }catch(err){
                            console.log('ошибка ' + err.stack);  //обработка ошибки, правда такой не очень информативет перехватывает и другие ошибки...
                            console.trace();
                        }
                    }
                },
                error: function(jqXHR, errClient, errorServer){
                    console.log("Ошибка ajax " + (errorServer || errClient));
                }
            });
        };
        
        $(document).on('ready', function(){
            $('.myButton').on('click', function(){
                mySpecialAjax(['xxx32', [this.year + '-' + this.month + '-01', this.id_user, this.id_net]]);
            });
        });
    </script>
</head>

<body>
    <input class="myButton" type="button" value="ОТПРАВИТЬ ЗАПРОС НА СЕРВЕР" />
    <!-- тут должна быть твоя табличка, в которую вставка строк производится -->
</body>
</html>



Таким образом, преимущество отправки данных порциями появляется только тогда, когда клиент ожидает получения огромных порций данных, что позволяет отображать информацию по мере получения (я надеюсь ты эту мысль хотел выразить с самого начала? просто странно что ты этого прямо не сказал)

Таким образом ставим галочку в пользу WS при работе с огромными массивами данных, которые сервер не может передать достаточно быстро, что бы программист мог себе позволить отобразить их одним разом.

Можешь ли ты описать ещё какие любо плюсы того, что WS позволяет отдавать данные порциями, кроме как уменьшение времени ожидания на клиенте?


Итак, вернёмся к нашему списку:
1. ОК
2. WS (при большом количестве пересылаемых данных)
3. ОК
4. WS
5. ОК
6. жду ответа
7. ОК
8. ОК
9. ОК
10. ОК

Осталось определиться с пунктом 6, что бы определить область оправданного применения WebSockets. Ответь пожалуйста на мой последний комментарий к пункту 6. Ну и как я говорил, если есть что добавить по пункту 2 (кроме "при большом количестве пересылаемых данных")
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341591
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
автор6 вроде как договорились , что основное преимущество реальное состояние соединения
https://learn.javascript.ru/websockets#ping-pong, всё встроено в ws/
я не сомневался , что многое можно реализовать с помощью ajax.
знаю, что у людей большой опыт и наработки.
но мне трудно убеждать в чём-то людей, которые сравнивают одн со вторым, которое не пробовали, не проверяли по всем показателям. я работал и с тем и другим, поэтому я выбрал после реального сравнения.
vk.com -справляется, и флаг ему в руки, а https://web.whatsapp.com/ работает через ws.
Petro123 не нравится что я в коде формирую html строку , а мне не нравится , что он данные из результсета перегоняет в json, како-то библиотекой, потом этот json в виде строки гоит на клиента, а уж потом заполняет элемент...самое главное БИБЛИОТЕКОЙ
вот только зачем стока преобразований? чем строка html отличается от json ? строка она и в Африке строка.
я сформировал строку - отправил- вставил. для этого нужны какие-то библиотеки?
для меня дуплексный режим основной выбор.
если кого-то устраивает постоянный опрос сервера - да ради бога.

я так понял, Програмеру понравилось такое
Код: javascript
1.
2.
3.
4.
5.
6.
 var func = data[k].func.split('.');
                            if(func[1]){
                                window[func[0]][func[1]](data[k].data);
                            }else{
                                window[func[0]](data[k].data);
                            }


да будет известно, что ws уже встроено во все браузеры.
con = new WebSocket -это вызов встроенного в браузер кода.....
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341593
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадячем строка html отличается от json
чем модель отличается от представления?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341601
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадячем строка html отличается от json
чем модель отличается от представления?
а есть ли смысл ради модели городить кучу кода и тратить на это время на выполнение?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341614
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяно мне трудно убеждать в чём-то людей, которые сравнивают одно со вторым, которое не пробовали, не проверяли по всем показателям. я работал и с тем и другим, поэтому я выбрал после реального сравнения.

Это прекрасно... если реальное сравнение обоснованное, а не "мне так показалось, что это удобнее" или "я тут это смог сделать, а там у меня не вышло" или "говорят что это лучше" :)

Вот именно обоснованность твоих утверждений я и пытаюсь понять.
Вот по второму пункту я с тобой согласился, что в определённых случаях это плюс... я даже согласился, что пункт 4 - тоже плюс для WS (хотя в душе остался при мнении что фигня а не аргумент, но всё же, твои слова основаны на чём-то физически существующем).

Но как я понимаю ты пункт 6 обосновать не можешь. То есть там происходит как-то иначе, но чем это лучше по сравнению с ajax ты сам не понимаешь.

Вот и приходим, что в целом, если программиста не пугает лишняя строка кода в виде setInterval(myUpdateFunc, 10000), если ему не требуется передавать огромные объёмы данных, если его канал достаточно широкий, что бы не заморачиваться на экономии лишних килобайт на клиента и если не требуется моментальная синхронизация с сервером, websocket не даст ему никаких плюсов по отношению к ajax (стандартному асинхронному http), а соответственно нет смысла переходить на какую-то альтернативную технологию. :))

А теперь к твоему первому посту, где ты собирался мне голову оторвать Ты раскритиковал мой код по двум пунктам:
1. eval
2. ajax

1. Обсуждение eval провалилось, потому как ты не предоставил никаких аргументов против использования eval (потому на фиг знает какой странице мне это обсуждение надоело... если есть аргументы - всё решается за считанные минуты, как с большинством пунктов по ajax против ws)
2. К указанному случаю все указанные плюсы ws неприменимы

Так что, в итоге получается незачем мне голову отрывать?
Если хочешь, можем в том же ключе что и с ajax обсудить и eval теперь. Культурно, обдумано.
В таком случае начинать следует с конкретных аргументов с твоей стороны, почему eval использовать в указанном конкретном случае плохо и как это сделать лучше (опять же в указанном конкретном случае, который я описал в своём первом сообщении).

P.S. Я не говорю что я абсолютно прав, но я не готов обсуждать чьи-то убеждения. Это просто трата времени. Я из обсуждения хочу вынести объективную информацию, а такое возможно только при полноценной адекватной аргументации. Потому я так быстро теряю интерес к пустому спору... потому я и удивляюсь что skyANA столько усилий приложил в попытке переубедить (честно, я бы не стал!)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341629
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропилпропущено...

чем модель отличается от представления?
а есть ли смысл ради модели городить кучу кода и тратить на это время на выполнение?

вадя, ты что! конечно есть...

Ты, разумеется, можешь с сервера отдавать готовое представление, например подготовленные строки для вставки в html таблицу... НО это противопоказано делать там, где отрабатывает основная логика.

Обычно это делается так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public function someAction($params){
    //разумеется так напрямую $params не передаётся, скорее после некоторой предобработки, но сейчас это не важно
    $model = MyModel::load($params)
    $model->doSomethingWithMe();
    $model->doSomethingWithMe2();
    if($model->save()){
        //если всё прекрасно сохранилось
        echo View::render('tableRowOK', ['data'=>$model]);
    }else{
        echo View::render('tableRowERROR', ['data'=>$model]);
    }
}


А уже сама функция render подгружает указанный файл представления и заполняет его нужными данными.

Я вот например подумал не о том, что ты html на клиента отправляешь, а первая же мысль о твоём коде была:"ФУ! Он что html собирает прямо в файле где формируются данные? Жесть какая каша!".

То, что я привёл - это стандартный MVC шаблон. Кстати он часто не оправдывает надежд разработчика и к нему постоянно приходится что-то привинчивать. Но это, зачастую, первый шаблон архитектуры, который осваивают программисты. Он один из самых доступных для понимания (например на курсе cs50 это единственный шаблон архитектуры, с которым знакомят начинающих адептов программирования)

Знаком с таким? плюсы применения знаешь или лучше их озвучить?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341633
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
скажу честно- с отрыванием головы - я погорячился.
по 6 пункту могу только теоритически сказать - плюс только в отслеживании в реальном времени.
практически до сих пор с эти не сталкивал, потому, что всё так стабильно работает само по-себе....
так что , для ясности и этот пункт замнём :)

насчёт обсуждения eval - для меня закончилось довольно приличными результатами - разобрался как это делае jquery, и как можно плучить пользу от добавления свойста элементам, это позволит многое упростить.
по самому eval - видел на практике его тормоза, поэтому использовать не хочу, хотя с твоими результатами экперимента и выводами полностью согласен и применение в том констексте считаю допустимым и даже оправданным :)
но я б не стал так делать....
по ws - это действительно реальное сравнение. у меня был проект начинался на jax-ws, по сути тот же ajax.
проблема началась когда юзера начали загружать картинки в портал и им потребовалось не по одной а сразу все, благо к тому времени в браузерах эта возможность появилась. они фоткали как попадётся, размер для них не имел значения (в отличие от сервера и времени на загрузки при просмотре) поэтому перед сохранением они нормализовались под размер, но стали жаловаться - отправили и всё зависает....начал искать как отсылать инфу для демонстрации прогреcса работы сервера и натолкнулся на ws. и получилось в одном проекте две технологии и понял разницу.
твои возражения понятны, но советую не забывать про возможности и плюсы ws.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341637
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

плюсы я понимаю, но только рассмаривая код мне прятнее видеть то что он делает, мне не нравится , что чтоб узнать что-то реально о том, что выполняется надо просмотреть ещё несколько файлов....
мне не нравится когда за такими понятиями прячут незнание строения баз, не умеют построить структуры базы.
возможно я не прав...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341638
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

с прогрессбаром хотел согласиться, но решил сначал погуглить (авось я просто не в курсе, потому что последний раз такая нужда появлялась несколько лет назад)... И оказалось, что погуглить было полезно. Оказывается к аяксу прикрутили функционал по отслеживанию процесса запроса-ответа :)

приятно удивило
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341639
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,

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

вадя, ты работаешь один или в команде? :)
Я даже наверное немного уточню вопрос... приходилось ли тебе работать в паре с верстальщиком?
Это важное уточнение, потому что я у себя в отделе строил работу так, что даже с таким подходом как у тебя можно было без проблем разделить работу между двумя программистами. Но вот между программистом и верстальщиком фиг разделишь (мне так кажется... если у тебя получалось делить, с радостью послушаю как ты этого добился)

P.S. Конечно тот отдел, которым я руководил с горем пополам можно назвать отделом, потому как там работало всего 2 человека у меня в подчинении (ещё один программист и верстальщик). Но сейчас таких "отделов" в нише малого и среднего бизнеса большинство, а мне очень был полезен опыт управления маленькой командой... По другому начинаешь смотреть на собственные глупости и косяки, особенно когда точно с такими же сталкиваешься каждый день в лице подчинённых :))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341653
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

интересно, но меня смутила эта фраза
Код: plaintext
Что касается серверной части, то там работаем с файлом/файлами, как если бы вы их загружали обычным способом.
т.е. получается, что прогресбар простая фикция, он только для "успокоения" юзера?
там я добился большего, "нормализованная картинка" сохранялась на сервере и отправлялась обратно, + размер отправлено /сохранённого, это всё уже было для меня - появление картинок - признак правильной отработки сервера.
мне не хватает дизайнера , знающего возможности html, а так я сам справляюсь. в своё время пришлось поработать за своей же бухгалтерско/складской системой - понял, что и как - в итоге получился неплохой продукт - операторы могли к к концу тлефонного заказа клиентом отправить напечатанный счет с учетом наших складских резервов/остатков и возможной замены товаров. операторвши в конце разговора просили клиента нажать на старт и наслаждались реакциец той стороны - удивлённый вопрос "Зачем?" - "Чтоб принять счёт" вот с тех пор я понял как не хватает возможности дуплексной связи с сервером...
построить целиком систему для меня не проблема сделать удобный интерфейс тоже, а вот красиво его оформить....
роль верстальщика для сайтов может быть и нужна , но для корпоративных систем - нет.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341657
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяроль верстальщика для сайтов может быть и нужна , но для корпоративных систем - нет.
почему? любое говно сожрут? тоже подход.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341660
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

прогрессбар там строится на основании данных о количестве отправленных байт информации и их соотношению к общему размеру отправляемых данных. То есть тут никакого взаимодействия с сервером нету. Браузер может посчитать это ничего не спрашивая у сервера. Если вопрос длительной обработки запроса сервером - тут другое дело. Но я не представляю что должен делать сервер, что бы клиент явно заметил его "тупёж" :))

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

Я так скажу, невозможно научиться хорошо проектировать систему работая solo. Всё потому, что основные косяки архитектуры вылазят при включении в работу нескольких исполнителей. Когда понимаешь что теперь между ними невозможно поделить работу или им постоянно надо друг к другу бегать, что бы получить ответ "как оно тут работает" и "почему тут так написано".
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341662
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяроль верстальщика для сайтов может быть и нужна , но для корпоративных систем - нет.
почему? любое говно сожрут? тоже подход.
нет, написать вебморду для портала - это не просто на html воплотить труд дизайнера, это такая же работа как и десктоп написать.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341666
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадянет, написать вебморду для портала - это не просто на html воплотить труд дизайнера, это такая же работа как и десктоп написать.
и что это меняет? забить можно?

для декстопа дизайнер интерфейса нужен так же, как и для веба
(у нас почему дизайнера с верстальщиком и художником регулярно путают) )
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341671
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
в начале трудовой деятельности мне посчастливилось работать в прекрасном коллективе . там парни сели за стол обсудили, разделили части проекта , каждый вник в свою часть , обсудили, и создали. у них были друг к другу вопросы типа - а если я тут так сделаю тебе это упростит или усложнит? и всё это без модных ныне штучек.....
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341674
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
для порталов нужен более грамотный специалист, верстальщиком его называть это оскорбление.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341675
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
для порталов нужен более грамотный специалист, верстальщиком его называть это оскорбление.
грамотный - он везде нужен.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341677
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, что там с eval? справились без него?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341679
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
в начале трудовой деятельности мне посчастливилось работать в прекрасном коллективе . там парни сели за стол обсудили, разделили части проекта , каждый вник в свою часть , обсудили, и создали. у них были друг к другу вопросы типа - а если я тут так сделаю тебе это упростит или усложнит? и всё это без модных ныне штучек.....

А мне ничего ни с кем обсуждать не приходилось. Я брал макет дизайнера и составлял требования к программным интерфейсам (которые пользовались всеми участниками процесса) :)
Иногда было совсем в лом или некогда, тогда я просто давал макеты программисту, говорил "передай верстальщику все необходимые для этого макета данные", а верстальщику говорил "тебе во вьюху массив придёт, там всё есть" Это канечно из разряда "подвал эдишын", но что поделаешь, когда сроки горят и не хочется впустую час-другой тратить, тем более что верстальщик с полученными данными и сам разобраться может.

Вопросы возникали очень редко. И то чаще всего тогда, когда верстальщик просто по незнанию затупливал или когда на страницу надо было виджет из другого модуля вогнать (этот процесс мне так и не удалось нормально отладить... уверен что это можно было сделать, но мне тогда скилов по проектированию не хватало).
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341680
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
тут есть одна вещь в solo я вижу всю систему. могу в любой момент перераспределить "ответственость" на любую часть, мне проще решить что для системы и где должно выполняться, на клиенте, на сервере или в хранимке , мне я вижу, что если я пожертвую чем-то в одной части , что это принесёт в другой. мне не надо ни с кем спорить убеждать (редко можно хорошего оппонента, без ненужны амбиций )
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341682
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилкстати, что там с eval? справились без него?
я согласился с Прорамером, но так делать не буду :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341683
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилкстати, что там с eval? справились без него?
Нет... решили что мне голову отрывать не стоит в указанном случае eval - оправданный вариант.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341688
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропилкстати, что там с eval? справились без него?
я согласился с Прорамером, но так делать не буду :)

а я не согласился - apply и bind - для кого придуманы?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341704
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяпропущено...

я согласился с Прорамером, но так делать не буду :)

а я не согласился - apply и bind - для кого придуманы?

Как в указанном случае можно переписать код без eval?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341708
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрКак в указанном случае можно переписать код без eval?
каком из, конкретнее.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341709
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПрограмёрКак в указанном случае можно переписать код без eval?
каком из, конкретнее.

19844155 в этом... с которого и началось обсуждение eval
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341715
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил
а я не согласился - apply и bind - для кого придуманы?
у меня не получилось с ними, сможешь показать?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341727
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрПотому я так быстро теряю интерес к пустому спору... потому я и удивляюсь что skyANA столько усилий приложил в попытке переубедить (честно, я бы не стал!)
+1
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341730
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
тут есть одна вещь в solo я вижу всю систему. могу в любой момент перераспределить "ответственость" на любую часть, мне проще решить что для системы и где должно выполняться, на клиенте, на сервере или в хранимке , мне я вижу, что если я пожертвую чем-то в одной части , что это принесёт в другой. мне не надо ни с кем спорить убеждать (редко можно хорошего оппонента, без ненужны амбиций )
какой там спор про MVC или сокеты или eval)).
Вадю нужно убеждать даже в том что командой работать лучше и полезнее для проекта.
Как объяснить одиночке в тундре, что такое шаблонный код, библиотеки и НЕ копипаст таблички в каждую страницу.
Никак.
Ему все оппоненты про то что куски кода надо разделять (для команды), а он про своё бормочет - как хорошо в тундре одному. Всё видно от края и до края.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341736
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропила я не согласился - apply и bind - для кого придуманы?
у меня не получилось с ними, сможешь показать?
давайте чётко специфицируем задачу - где и как задана вызываемая функция.

Если конечно допускается
Код: html
1.
<form     data-onsuccess="foo();bar(this);">

- только eval конечно (контекст в ajax вызове выставить - не забыть)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341738
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ему все оппоненты про то что куски кода надо разделять (для команды),
для себя любимого - тоже желательно, что характерно
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341740
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторВопрос: зачем пихать в DOM элемент window[this.id]?
вопрос понят так: есть дерево DOM, и зачем в это дерево ещё запихивать(добавлять) элемент window[this.id]

window[this.id] - это элемент DOM, и в тоже время это объект. скажем так: с предопределёнными свойствами


авторТо есть решить проблему через костыль.
Спросишь, почему костыль? И я отвечу: когда ты что-то добавляешь в объект, то ты расширяешь его.
И когда ты расширяешь объект свойствами и функционалом, к нему не относящимися, то это явно костыль.
по навешиванию ярлыков надо быть осторожнее
когда ты что-то добавляешь в объект, то ты расширяешь его. согласен полностью.
И когда ты расширяешь объект свойствами и функционалом а вот тут полностью не согласен
почему ты считаешь что добавленный функционал не относится к нему?
Потому что ты не можешь привести пример того, когда это так.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341744
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяwindow[this.id] - это элемент DOM, и в тоже время это объект. скажем так: с предопределёнными свойствами
не приходила мысль, что всякий DOM-элемент является объектом, но не всякий объект является DOM-элементом?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341745
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И похоже на то, что Вы, вадя, теряете суть после пары сообщений.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341756
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилPetro123Ему все оппоненты про то что куски кода надо разделять (для команды),
для себя любимого - тоже желательно, что характерно
конечно. Программист всегда должен быть ленивым для копиПасты. Т.к. суть его работы - автоматизация всего и вся.
Раскладывание "по полочкам" (слоям\файлам\функциям\библитекам\классам) - основа каждодневной работы.
Тут Вадя спорит и говорит что ему удобнее обозравать всю пустыню в одиночку)).
Понятно, что в голове у него не удерживаются "артефакты по полочкам уровнем больше Функция".
Хотя можно прекрасно кодировать на нижнем уровне и в таком качестве).
Никто не виноват в том что у Вади не было проекта из 100 табличек на 70 страничках.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341760
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне приходила мысль, что всякий DOM-элемент является объектом, но не всякий объект является DOM-элементом?
раз всякий DOM-элемент является объектом, то ему принадлежит всё, что принадлежит всякому объекту в javascript/html
если создаём объект
var x={};
мы можем сделать так
x.xxx=function(p){ alert(p);}

и потом вызвать
x.xxx('ooooooo'');

так же не будет противоречить стандарту
document.getElementById('load').aaa=function(p){ alert(p);};
и вызов
document.getElementById('load').aaa('kkkkkkkkkkkkkkkkk');
чем я и воспользовался
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341767
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторне приходила мысль, что всякий DOM-элемент является объектом, но не всякий объект является DOM-элементом?
раз всякий DOM-элемент является объектом, то ему принадлежит всё, что принадлежит всякому объекту в javascript/html
если создаём объект
var x={};
мы можем сделать так
x.xxx=function(p){ alert(p);}

и потом вызвать
x.xxx('ooooooo'');

так же не будет противоречить стандарту
document.getElementById('load').aaa=function(p){ alert(p);};
и вызов
document.getElementById('load').aaa('kkkkkkkkkkkkkkkkk');
чем я и воспользовался
Это ещё на второй странице все поняли.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341769
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятак же не будет противоречить стандарту
никто ж не говорит о противоречии стандартам W3C, ECMA...

только об архитектуре приложения
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341771
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадятак же не будет противоречить стандарту
никто ж не говорит о противоречии стандартам W3C, ECMA...

только об архитектуре приложения
уже лучше
чем мой метод отличается от eval?
с точки зрения архитектуры?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341789
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяпропущено...

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

Если конечно допускается
Код: html
1.
<form     data-onsuccess="foo();bar(this);">

- только eval конечно (контекст в ajax вызове выставить - не забыть)

нет.. по задумке вот это "foo();bar(this);" не допускается (так как я написал eval не сработает)
допускается вот такое: data-onsuccess="mySuccessHandler", где mySuccessHandler - это локальная функция.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341845
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрдопускается вот такое: data-onsuccess="mySuccessHandler", где mySuccessHandler - это локальная функция.
Код: javascript
1.
2.
this[this.dataset.onsubmit].apply(this); // если контекст формы выставлен в ajax callback
context[context.dataset.onsubmit].apply(context); // иначе



не вижу проблем
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341856
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПрограмёрдопускается вот такое: data-onsuccess="mySuccessHandler", где mySuccessHandler - это локальная функция.
Код: javascript
1.
2.
this[this.dataset.onsubmit].apply(this); // если контекст формы выставлен в ajax callback
context[context.dataset.onsubmit].apply(context); // иначе



не вижу проблем
расшифруй,
это куда , к какому коду встваить/применить?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341859
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

прям с языка снял (или тут правильнее сказать с клавиатуры )...

Изопропил, полный вариант напиши пожалуйста ;) Что ыб мы могли в полной мере ощутить восторг и оценить твоё мастерство, а не по двум непонятным строчкам кода, в которых даже не понятно что за переменные используются)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341939
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если без наворотов и проверок - примерно так
Код: html
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.
<script>
'use strict';

$(function(){
document.querySelector('input[name="bt"]').onclick = send;
document.querySelector('form[name="f1"]').foo = {g:{t:function () { this.querySelector('div.status').textContent='foo:'+this.name;}  }};
document.querySelector('form[name="f2"]').bar =       function (){ this.querySelector('div.status').textContent='bar:'+this.name;};
});

function send(){
$('form.ajax').each( function() {
 $.ajax({
  success: function() {
    var ctx = this; 
    this.dataset.onsubmit.split('.').forEach(function(val){ctx=ctx[val];});
    ctx.apply(this);
  },
  context: this
  }); 
 });
}
</script>

<input name="bt" type="submit" value="Send" />
<form class="ajax"  name="f1" data-onsubmit="foo.g.t" >
<div class="status"></div>
</form>
<form class="ajax"  name="f2"  data-onsubmit="bar" >
<div class="status"></div>
</form>
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341947
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

не имеет ничего общего с тем, что написал я.

я просил вот этот функционал повторить
Код: 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.
<!doctype html>
<html lang="en">

<head>
    <title>test</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
    $(document).on('ready', function(){
        
        $('body').on('submit', 'form.ajax', function(e){
            e.preventDefault();
            var frm = $(this);

            $.ajax({
                url: frm.attr('action'),
                type: frm.attr('method'),
                data: frm.serialize(),
                success: eval(frm.data('success')) || function(data){
                  //дефолтный обработчик, если у формы не определён success метод
                },
                error: eval(frm.data('error')) || function(error){
                  //дефолтный обработчик, если у формы не определён success метод
                  alert('got error');
                }
            });
        });
        
        var errorHandler = function (error){
            alert('got special error');
        };
        
    });
    
    </script>
</head>

<body>
    <form action="/aaa.php" method="post" data-error="errorHandler" class="ajax">
        <input type="text" name="test" value="" />
        <input type="submit" value="Протестировать" />
    </form>
    <form action="/aaa.php" method="post" class="ajax">
        <input type="text" name="test" value="" />
        <input type="submit" value="Протестировать" />
    </form>
</body>
</html>



А что сделал ты - не знаю :) Но что-то явно не то. Попытка номер 2?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341950
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНо что-то явно не то
а по моему как раз то и с некоторым запасом
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341953
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПрограмёрНо что-то явно не то
а по моему как раз то и с некоторым запасом

Играем в 10 отличий? Не смешно

1. У меня 2 кнопки, у тебя одна
2. У тебя кнопка отправляет сразу все формы, а у меня у каждой формы свой сабмитер

А давай теперь по честному... делегируй обработчик, а не опрашивай все формы на "а не вас ли тут случайно хотели отправить"... И скажи пожалуйста, если ты к каждой форме лепишь обработчик, то зачем указывать его имя в "data-onsubmit", если тогда было бы проще договориться о том, что этот обработчик всегда имеет одно и то же имя? :))


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

По твоему это в какой-то другой вселенной что-ли? Если нет, тогда давай так, что бы не по-твоему, а объективно!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341961
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
мужики я тащусь!!!!!
Код: javascript
1.
document.querySelector('form[name="f1"]').foo = {g:{t:function () { this.querySelector('div.status').textContent='foo:'+this.name;}  }};


ну это ж повтор моего примера !!!!!!!!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341968
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и стоило 11 страниц спорить????
чтоб повторить то, что было предсталено на 2 странице?????
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341973
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи стоило 11 страниц спорить????
чтоб повторить то, что было предсталено на 2 странице?????

вадя, он, видимо, не ведает что делает и о чём говорит )) Дождёмся ответа, может у него и правда будет достойная аргументация для такого подхода, но я очень сомневаюсь...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341974
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрвадя, он, видимо, не ведает что делает и о чём говорит )) Дождёмся ответа, может у него и правда будет достойная аргументация для такого подхода, но я очень сомневаюсь...
очень надеюсь, а то я голову сломал, пытаясь .bind и .apply прикрутить...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341983
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
естественно, за 11 страниц обсудили массу аспектов.
Код: html
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.
<script>
'use strict';

$.extend(window,{foo:{g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}}); // foo.g.t с использованием namespace2 
function bar(){ this.querySelector('div.status').textContent='bar:'+this.name;}; 

$(function(){
/* "Локальных"  функций(методов объекта Form)  у топикстартера  не было 
$('form[name="f1"]').each(function(){ $.extend(this,{foo : {g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}});});
$('form[name="f2"]').each(function(){ $.extend(this,{bar : function (){ this.querySelector('div.status').textContent='bar:'+this.name;}     });})
*/

$('form.ajax').each( function() { 
	$(this).submit ( function(event){
                event.preventDefault();
                $.ajax({
                   url: '',  
                   data: {   }, 
                   success: function(data) { 
                     /* обсуждается замена eval, разве нет? */
                     var ctx = window ;      /* если хочется искать в "локальных" -   var ctx=this; */
                     $(this).data('onsubmit').split('.').forEach(function(val){ctx=ctx[val];});
                     ctx.apply(this);                     
                   },
                   context: this
                 }); 
        });
   });
});
</script>


<form class="ajax"  name="f1" data-onsubmit="foo.g.t" data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>
<form class="ajax"  name="f2"  data-onsubmit="bar"    data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>



Хотя битва была изначально за/против eval, apply здесь(для установки this на обрабатываемую форму)
Код: javascript
1.
2.
3.
4.
                     /* обсуждается замена eval, разве нет? */
                     var ctx = window ;      /* если хочется искать в "локальных" -   var ctx=this; */
                     $(this).data('onsubmit').split('.').forEach(function(val){ctx=ctx[val];});
                     ctx.apply(this);                     
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341988
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилестественно, за 11 страниц обсудили массу аспектов.
Код: html
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.
<script>
'use strict';

$.extend(window,{foo:{g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}}); // foo.g.t с использованием namespace2 
function bar(){ this.querySelector('div.status').textContent='bar:'+this.name;}; 

$(function(){
/* "Локальных"  функций(методов объекта Form)  у топикстартера  не было 
$('form[name="f1"]').each(function(){ $.extend(this,{foo : {g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}});});
$('form[name="f2"]').each(function(){ $.extend(this,{bar : function (){ this.querySelector('div.status').textContent='bar:'+this.name;}     });})
*/

$('form.ajax').each( function() { 
	$(this).submit ( function(event){
                event.preventDefault();
                $.ajax({
                   url: '',  
                   data: {   }, 
                   success: function(data) { 
                     /* обсуждается замена eval, разве нет? */
                     var ctx = window ;      /* если хочется искать в "локальных" -   var ctx=this; */
                     $(this).data('onsubmit').split('.').forEach(function(val){ctx=ctx[val];});
                     ctx.apply(this);                     
                   },
                   context: this
                 }); 
        });
   });
});
</script>


<form class="ajax"  name="f1" data-onsubmit="foo.g.t" data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>
<form class="ajax"  name="f2"  data-onsubmit="bar"    data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>



Хотя битва была изначально за/против eval, apply здесь(для установки this на обрабатываемую форму)
Код: javascript
1.
2.
3.
4.
                     /* обсуждается замена eval, разве нет? */
                     var ctx = window ;      /* если хочется искать в "локальных" -   var ctx=this; */
                     $(this).data('onsubmit').split('.').forEach(function(val){ctx=ctx[val];});
                     ctx.apply(this);                     



Браво. Даже не знаю с чего начать

1.
Код: javascript
1.
$.extend(window,{foo:{g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}}); // foo.g.t с использованием namespace2 


Вадя хотя бы расширял сам объект формы, а ты вообще на расширение window в чистом виде замахнулся :) Если модульную систему будешь писать, будешь называть функции jasdhflkjsdfjsadfhsakdfksgadfgsdfgsjh_myFunction ? Что бы со другими/сторонними модулями не пересекаться? :)

2.
Изопропил"Локальных" функций(методов объекта Form) у топикстартера не было
зато были у меня... у топикстартера вообще подход другой, и обсуждали мы изначально не его подход, а мой

3.
Код: javascript
1.
$('form.ajax').each(/*...*/)


Прекрасно... И все новые формы добавляемые на страницу (например подгружаемые аяксом) в пролёте...

4. Изопропилобсуждается замена eval, разве нет?
Именно... так замени же этот "минус" таким образом, что бы твоя замена не породила ещё 3 новых, более значимых, чем некое иллюзорное предупреждение в интернете "eval is evil", которое не все даже понять правильно могут, не говоря о том, что бы в суть вникнуть.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341992
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

1 - function bar(){} - уже расширяет window
что по твоему собственно есть $.extend ?
как ещё проиллюстировать возможность вызова функции с именем "foo.g.t" , чтоб пример был рабочим?

2 - локальные или глобальные - похер
авторvar ctx = window ; /* если хочется искать в "локальных" - var ctx=this; */


по хорошему нужно поиск сначала делать локальный, потом глобальный со всеми сопутствующими проверками

3. да, согласен

4. this передать таки нужно в эти постсубмит обработчики как и составные имена обработать.
окружающий код только для того нужен , чтоб этот фрагмент реально работоспособным был (п 1 включая)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39341998
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПрограмёр,

1 - function bar(){} - уже расширяет window
что по твоему собственно есть $.extend ?
как ещё проиллюстировать возможность вызова функции с именем "foo.g.t" , чтоб пример был рабочим?

2 - локальные или глобальные - похер
авторvar ctx = window ; /* если хочется искать в "локальных" - var ctx=this; */


по хорошему нужно поиск сначала делать локальный, потом глобальный со всеми сопутствующими проверками

3. да, согласен

4. this передать таки нужно в эти постсубмит обработчики как и составные имена обработать.
окружающий код только для того нужен , чтоб этот фрагмент реально работоспособным был (п 1 включая)

1. Так и я о том же.... не должно быть никакой функции bar в глобальной области видимости... они все в локальных контекстах закрываются. В глобальной оставляются только те, которые не получилось "спрятать". И то зачастую это причина плохой архитектуры.

2. Сделай код с локальными, пожалуйста, что бы можно было его в файл залить и проверить работоспособность не внося разные правки. То есть он должен изначально выполнять предъявленные к нему требования, а уже потом всё остальное. А у тебя получается наоборот... ты закладываешь в код "няшки", а основную задачу он не выполняет... Типа "хотите - поменяйте и будет выполнять"!

3. ОК. Но предполагается что для продолжения беседы надо исправить. Иначе твой код получается изначально хуже моего :)

4. Я не хочу вносить правки в твой код, что бы беседа оставалась чистой и не распылялась. То есть на мой рабочий код в ответе должен содержаться другой такой же рабочий код, только лучше моего. (то есть он может то же что и мой, только делает это лучше/чище/быстрее или может что-то ещё, чего не может мой)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342002
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

хорошо
Код: html
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.
<script>
'use strict';

$(function(){

$('form[name="f1"]').each(function(){ $.extend(this,{foo : {g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}});});
$('form[name="f2"]').each(function(){ $.extend(this,{bar : function (){ this.querySelector('div.status').textContent='bar:'+this.name;}     });})

$('body').on('submit', 'form.ajax',       
	  function(event){
                event.preventDefault();
                $.ajax({
                   url: '',    
                   data: {   },  
                   success: function(data) { 
                     /************************/
                     var ctx = this;
                     $(this).data('success').split('.').forEach(function(val){ctx=ctx[val];});
                     ctx.apply(this);                 
                     /************************/
                 },
                   context: this
                 }); 
         });
});
</script>


<form class="ajax"  name="f1" data-success="foo.g.t" data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>
<form class="ajax"  name="f2"  data-success="bar"    data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342003
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

а где ты размещаешь локальные функции (методы форм) ?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342006
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПрограмёр,

а где ты размещаешь локальные функции (методы форм) ?

Странный вопрос... вот тут

Код: javascript
1.
2.
3.
4.
5.
6.
7.
$(document).on('ready', function(){
...
        var errorHandler = function (error){
            alert('got special error');
        };
...
});
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342008
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПрограмёр,

хорошо
Код: html
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.
<script>
'use strict';

$(function(){

$('form[name="f1"]').each(function(){ $.extend(this,{foo : {g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}});});
$('form[name="f2"]').each(function(){ $.extend(this,{bar : function (){ this.querySelector('div.status').textContent='bar:'+this.name;}     });})

$('body').on('submit', 'form.ajax',       
	  function(event){
                event.preventDefault();
                $.ajax({
                   url: '',    
                   data: {   },  
                   success: function(data) { 
                     /************************/
                     var ctx = this;
                     $(this).data('success').split('.').forEach(function(val){ctx=ctx[val];});
                     ctx.apply(this);                 
                     /************************/
                 },
                   context: this
                 }); 
         });
});
</script>


<form class="ajax"  name="f1" data-success="foo.g.t" data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>
<form class="ajax"  name="f2"  data-success="bar"    data-module="user" data-handler="register">
<input name="bt" type="submit" value="Send" />
<div class="status"></div>
</form>



уже лучше, но твой код ещё кое чего не может. Зачем ты делегируешь событие, если любая новая форма вставленная в код в любом случае будет в пролёте. Я не смогу загрузить с сервера html новой формы, вставить его в документ, и получить форму работающую по указанному принципу :))

Обработчик ответа ты ведь к объекту формы цепляешь...


Ну смотри... мой код может так:
Код: html
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.
<?php if(!empty($_POST['test'])): ?>
    <form action="" method="post" data-success="successHandle" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
<?php exit; endif; ?>
<!doctype html>
<html lang="en">

<head>
    <title>test</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
    $(document).on('ready', function(){
        
        $('body').on('submit', 'form.ajax', function(e){
            e.preventDefault();
            var frm = $(this);

            $.ajax({
                url: frm.attr('action'),
                type: frm.attr('method'),
                data: frm.serialize(),
                success: eval(frm.data('success')) || function(data){
                  //дефолтный обработчик, если у формы не определён success метод
                },
                error: eval(frm.data('error')) || function(error){
                  //дефолтный обработчик, если у формы не определён success метод
                  alert('got error');
                }
            });
        });
        
        var errorHandler = function (error){
            alert('got special error');
        };
        
        var successHandle = function (data){
            $('body').append(data);
        };
    });
    
    </script>
</head>

<body>
    <form action="" method="post" data-success="successHandle" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
    <form action="" method="post" data-success="successHandle" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
</body>
</html>



А твой код такое может? :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342009
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

кстати, ты к 100500-ому сообщение предложил то же, что вадя предлагал на второй странице этой же темы (ту же идею). Просто он предлагал завязываться на id, а ты - на имя. Не вижу особой разницы.. ну да, у тебя не будет коллизии айди элементов, но это не многое меняет :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342029
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
по вопросу id - за этим надо также следить, как и за уникальностью имен любых переменных.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342030
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
завязываются на имена, классы стоит тогда, когда нужно присвоить что-то нескольким dom элементам . в любом другом случае обращение по id. система считает , что id уникально, и прекращает просмотр дерева при нахождение первого. в других случаях ищет все , т.е. просматривает дерево до конца.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342033
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
такое
Код: javascript
1.
$('form[name="f1"]').each(function(){ $.extend(this,{foo : {g:{t:function () { this.querySelector('div.status').textContent='foo.g.t:'+this.name;}}}});});


лучше заменить на такое
Код: javascript
1.
2.
3.
4.
5.
6.
            $('form[name="f1"]').each(function () {
                $.extend(this, {foo: {g: {t: function () {
                                this.querySelector('div.status').textContent = 'foo.g.t:' + this.name;
                            }
                        }}});
            });



таке
Код: javascript
1.
 $('body').on('submit', 'form.ajax', function(e){....



лучше заменить на такое
Код: javascript
1.
 $(document).on('submit', 'form.ajax', function(e){


в таком случае замена элемента form.ajax не вызовет пропадание его обработчика
это и Я не смогу загрузить с сервера html новой формы, вставить его в документ, и получить форму работающую по указанному принципу :))
исправляет
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342036
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
с учётом всего, что было обсуждено, по поводу этого
автор "window[ this.id].cc = ..." вот это и есть захламления глобального объекта!!! Эт овы не локальную переменную создали, а глобальную!!!
есть ли каки-либо изменения или добавление свйства всё ещё считаешь захламлением?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342037
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так наглядней будет, хотя это уже дело вкуса.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
            $('form[name="f1"]').each(function () {
                $.extend(this, {
                    foo: {
                        g: {
                            t: function () {
                                this.querySelector('div.status').textContent = 'foo.g.t:' + this.name;
                            }
                        }
                    }
                });
            });
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342040
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрИзопропилПрограмёр,

а где ты размещаешь локальные функции (методы форм) ?

Странный вопрос... вот тут

Код: javascript
1.
2.
3.
4.
5.
6.
7.
$(document).on('ready', function(){
...
        var errorHandler = function (error){
            alert('got special error');
        };
...
});




и сюда же eval , иначе не увидит своих локальных функций
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342047
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
$(document).on'redy') по большей части является глобальным модулем, и в него такое засовывать неочень хортшо
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342056
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочу у Програмёр разрешения спросить на
Код: javascript
1.
window.isopropyl={};


можно я своё говно туда сложу или уже поздно - засрал глобальное пространство?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342058
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
$(document).on'redy') по большей части является глобальным модулем, и в него такое засовывать неочень хортшо
это добавление функции во внутренний список jquery

jquery в глобальное пространство добавляет единственное имя $ ,
которое можно изменить на что угодно(можно вообще jquery не добавлять в глобальное постранкство) и восстановть $ в предшествующее загрузке состояние
см. jQuery.noConflict
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342063
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
$(document).on'redy') по большей части является глобальным модулем, и в него такое засовывать неочень хортшо
или ты о том, что Програмёр для локальных функций места не нашёл приличного?
так я о том же
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342071
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
1 туда добавляется, то что должно выполнится сразу по готовности документа,
то , что ты длбавляешь его можно выполнить и позже, до работы твоего основного кода. Это чисто условное разделение. но логически позволяет лучше понять код
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342075
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
2 $(document).on позволяет назначить обработчик один раз и в дальнейшем при замене элемента обработчик оказывается сохранённым.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342106
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
1 туда добавляется, то что должно выполнится сразу по готовности документа,
то , что ты длбавляешь его можно выполнить и позже, до работы твоего основного кода. Это чисто условное разделение. но логически позволяет лучше понять код
спасибо кэп ))

то есть всё говно что есть нужно положить сюда, причём одной кучкой, иначе eval не увидит(eval естественно в эту кучу) За что боролись?

----------------------------------------------------------------------------------
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342116
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
у меня там только очень обязательное для инициализации при загрузки
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342122
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
<?php if(!empty($_POST['test'])): ?>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
<?php exit; endif; ?>
<!doctype html>
<html lang="en">

<head>
    <title>test</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
        $.fn.superAjax = function(handlersObject){
            var superAjaxFunction = function(e){
                e.preventDefault();
                var frm = $(this);

                $.ajax({
                    url: frm.attr('action'),
                    type: frm.attr('method'),
                    data: frm.serialize(),
                    success: handlersObject[frm.data('success') || 'defaultSuccess'] || function(data){
                        console.log(data);
                    },
                    error: handlersObject[frm.data('error') || 'defaultError'] || function(error){
                        console.log(error);
                    }
                });
            };
            
            if(this.selector){
                $('body').on('submit', this.selector, superAjaxFunction);
            }else{
                this.on('submit', superAjaxFunction);
            }
        };
    </script>
    <script>
    $(document).on('ready', function(){
        
        $('form.ajax').superAjax({
            errorHandler: function (error){
                alert('got special error');
            },
            successHandler: function (data){
                $('body').append(data);
            }
        });
        
        $('form.ajax').prev('.unique').superAjax({
            errorHandler: function (error){
            },
            successHandler: function (data){
                alert('clicked unique');
            }            
        });
    });
    </script>
</head>

<body>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="unique">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Уникальная форма" />
    </form>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
</body>
</html>



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

Считаю это решение лучше, чем моё предыдущее... и лучше, чем все другие тут озвученные. Потому с eval вопрос точно закрываем, а вот сравнение с другими решениями можем провести и обсудить, если у кого есть желание :)

P.S. Столько кода меня вынуждаете писать, что я даже на работе зачастую меньше напрягаюсь
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342148
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
у меня там только очень обязательное для инициализации при загрузки

Это к Програмёр был вопрос
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342152
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
вариант действительно не плохой и достоин применения и повторения, только мне что-то в нем не нравится, какое-то чутьё подсказывает, здесь что-то не то....
но это чисто моё субъективное мнение.
это как ответ на
Код: plaintext
 а вот сравнение с другими решениями можем провести и обсудить, если у кого есть желание :)
и спорить я не буду, потому как даже сформулировать не смогу причину... просто чувство....
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342165
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
вариант действительно не плохой и достоин применения и повторения, только мне что-то в нем не нравится, какое-то чутьё подсказывает, здесь что-то не то....
но это чисто моё субъективное мнение.
это как ответ на
Код: plaintext
 а вот сравнение с другими решениями можем провести и обсудить, если у кого есть желание :)
и спорить я не буду, потому как даже сформулировать не смогу причину... просто чувство....

Разумеется у этого метода есть недостатки :)
Вот список тех, которые я смог найти:
1. Жрёт память для функции superAjaxFunction при каждом вызове
2. Невозможно на лету добавить новый обработчик (то есть, если у меня появится новый вариант обработки ответа, то дополнить объект с хэндлерами я не смогу)
3. Я не создал объект с функционалом и нигде его не сохранил. То есть в данном случае я не смогу в последующем управлять тем, что повесил на коллекцию/селектор. Обычно плагины jquery проектируются так, что повторный вызов изменяет существующий объект, добавляет к нему опции, а не создаёт новый поверх ранее созданных
4. Даже исправление предыдущих пунктов не исправит того, что разработчику придётся задумываться над тем, к чему он сейчас применяет superAjax, к коллекции или к селектору. Вызвав код дважды: один раз для селектора и один раз для коллекции, он повесит на элементы 2 обработчика параллельно :)

Вот с первыми тремя пунктами можно очень просто справиться (я необходимый хак придумал ещё тогда, когда ООП на js учил, и привёл его к виду почти полностью повторяющему классическое ООП). С четвёртым, как я и написал, дела обстоят сложнее. Одно из возможных решений, это не проверять как был сделан вызов, а заставить разработчика в явном виде указать как он хочет вызвать superAjax. Но и тут свои минусы будут, при чём побольше в размерах, чем указанные :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342168
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
самокритика похвальна.
мне больше понравилась фраза, что в виде плагина, давно хотел в этом разобраться, счас есть код на котором можно разобраться
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342172
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадясчас есть код на котором можно разобраться
смеяться или плакать?

https://learn.jquery.com/plugins/ несколько адекватнее будет
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342174
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадясчас есть код на котором можно разобраться
смеяться или плакать?

https://learn.jquery.com/plugins/ несколько адекватнее будет
возможно, но тут как бы на "натурном" примере. и есть альтернативные варианты. в тоже время описаны минусы.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39342203
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте тогда спроектируем плагин, который будет отвечать всем необходимым требованиям :)

Типы выборок для манипуляций
1. отдельный узел DOM
2. коллекция узлов DOM
3. селектор (подписка)

Для каждой из выборок должны выполняться следующие действия:
1. В случае первого вызова superAjax для узла DOM или для селектора, должен возвращаться новосозданный объект (для последующих манипуляций над ним)
2. В случае повторного вызова superAjax для узла DOM или для селектора, должен возвращаться ранее созданный объект (для последующих манипуляций над ним)
3. В случае вызова для коллекции узлов DOM, должен вернуть коллекцию ранее созданных объектов, соответствующих каждому из указанных узлов, дополнив её новыми объектами, для тех узлов, для которых метод вызывается впервые.

Правила обращений к объектам плагина
1. Все вызовы направленные объекту-коллекции должны передаваться каждому из вложенных в него объектов.
2. Все методы объекта, кроме тех, для которых указано иное, должны возвращать указатель на этот объект (this)

Общие требования
1. Плагин должен быть максимально инкапсулирован, что бы исключить пересечения с другими плагинами. Сам плагин должен быть представлен единой функцией superAjax, через которую будет производится доступ ко всем функциям плагина.
2. Плагин должен быть максимально оптимизирован по потреблению памяти.
3. Весь код плагина должен полностью соответствовать специчикации ECMAScript, а манипуляции с DOM должны полностью соответствовать спецификации HTML5

Функции плагина
1. superAjax - базовый метод плагина возвращающий его объект или коллекцию объектов
/* следующие функции должны быть методами объекта, возвращаемого функцией superAjax */
2. addHandler(name, callback) - метод, добавляющий обработчик к объекту (для возможности его последующего назначения)
3. removeHandler(name) - метод, удаляющий обработчик из объекта
4. resetHandlers() - метод, удаляющий все обработчики из объекта (сбрасывают обработчики)
5. setSuccess(name) - подписывает один из ранее добавленных обработчиков на событие success (точнее меняет атрибут data-success у формы/форм)
6. setError(name) - подписывает один из ранее добавленных обработчиков на событие error (точнее меняет атрибут data-error у формы/форм)
7. remove() - удаляет объект или вложенные в него объекты (если это коллекция), предварительно отписав его/их от нужных событий.

Взаимодествие с объектом формы
1. При вызове методов setSuccess или setError, в атрибуты data-success и data-error должны быть записаны соответствующие значения (названия методов)
2. При попытке отправить форму, вызов должен быть перехвачен плагином, а отправка произведена по технологии ajax. Ответ сервера должен быть обработан методом-обработчиком, указанным в атрибутах data-success или data-error отправляемой формы, в зависимости от результата запроса. Если метод с указанным именем не был ранее добавлен в объект плагина соответствующий форме, то плагин должен бросить исключение.
3. Если форме соответствуют сразу 2 или более объектов плагина, то событие submit должен перехватить последний из них, а остальные объекты не должны никак на это событие реагировать (при чём сам плагин не должен вызывать stopPropagation события или прерывать цепочку вызовов, так как другие плагины также могут быть подписаны на событие submit указанной формы)


Как-то так. Такое себе мини ТЗ, надеюсь понятное не только мне, но и кому-то ещё. Сейчас уже, к сожалению, подошло время поработать (а то не хочется до 5 утра сидеть с этим), а как освобожусь, постараюсь наваять плагин, соответствующий этим требованиям. Если кому интересно, присоединяйтесь (в том числе с поправками и дополнением требований, где это необходимо).
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39343971
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрДавайте тогда спроектируем плагин, который будет отвечать всем необходимым требованиям :)

Типы выборок для манипуляций
1. отдельный узел DOM
2. коллекция узлов DOM
3. селектор (подписка)

Для каждой из выборок должны выполняться следующие действия:
1. В случае первого вызова superAjax для узла DOM или для селектора, должен возвращаться новосозданный объект (для последующих манипуляций над ним)
2. В случае повторного вызова superAjax для узла DOM или для селектора, должен возвращаться ранее созданный объект (для последующих манипуляций над ним)
3. В случае вызова для коллекции узлов DOM, должен вернуть коллекцию ранее созданных объектов, соответствующих каждому из указанных узлов, дополнив её новыми объектами, для тех узлов, для которых метод вызывается впервые.

Правила обращений к объектам плагина
1. Все вызовы направленные объекту-коллекции должны передаваться каждому из вложенных в него объектов.
2. Все методы объекта, кроме тех, для которых указано иное, должны возвращать указатель на этот объект (this)

Общие требования
1. Плагин должен быть максимально инкапсулирован, что бы исключить пересечения с другими плагинами. Сам плагин должен быть представлен единой функцией superAjax, через которую будет производится доступ ко всем функциям плагина.
2. Плагин должен быть максимально оптимизирован по потреблению памяти.
3. Весь код плагина должен полностью соответствовать специчикации ECMAScript, а манипуляции с DOM должны полностью соответствовать спецификации HTML5

Функции плагина
1. superAjax - базовый метод плагина возвращающий его объект или коллекцию объектов
/* следующие функции должны быть методами объекта, возвращаемого функцией superAjax */
2. addHandler(name, callback) - метод, добавляющий обработчик к объекту (для возможности его последующего назначения)
3. removeHandler(name) - метод, удаляющий обработчик из объекта
4. resetHandlers() - метод, удаляющий все обработчики из объекта (сбрасывают обработчики)
5. setSuccess(name) - подписывает один из ранее добавленных обработчиков на событие success (точнее меняет атрибут data-success у формы/форм)
6. setError(name) - подписывает один из ранее добавленных обработчиков на событие error (точнее меняет атрибут data-error у формы/форм)
7. remove() - удаляет объект или вложенные в него объекты (если это коллекция), предварительно отписав его/их от нужных событий.

Взаимодествие с объектом формы
1. При вызове методов setSuccess или setError, в атрибуты data-success и data-error должны быть записаны соответствующие значения (названия методов)
2. При попытке отправить форму, вызов должен быть перехвачен плагином, а отправка произведена по технологии ajax. Ответ сервера должен быть обработан методом-обработчиком, указанным в атрибутах data-success или data-error отправляемой формы, в зависимости от результата запроса. Если метод с указанным именем не был ранее добавлен в объект плагина соответствующий форме, то плагин должен бросить исключение.
3. Если форме соответствуют сразу 2 или более объектов плагина, то событие submit должен перехватить последний из них, а остальные объекты не должны никак на это событие реагировать (при чём сам плагин не должен вызывать stopPropagation события или прерывать цепочку вызовов, так как другие плагины также могут быть подписаны на событие submit указанной формы)



Как-то так. Такое себе мини ТЗ, надеюсь понятное не только мне, но и кому-то ещё. Сейчас уже, к сожалению, подошло время поработать (а то не хочется до 5 утра сидеть с этим), а как освобожусь, постараюсь наваять плагин, соответствующий этим требованиям. Если кому интересно, присоединяйтесь (в том числе с поправками и дополнением требований, где это необходимо).

Наконец-то добрался.. :))
Итак, немного сменил систему вызовов. Теперь функция superAjax не возвращает объект, а просто создаёт новый или модифицирует (вызывает методы по имени). При попытке повторного создания вызов просто игнорируется. (показалось больше в стиле jquery возвращать объект jquery, чем какой-то самодельный)

И ещё не заморачивался на случай, когда на один элемент повешано несколько обработчиков через разные селекторы (то, что отработать должен последний). Но там, наверное, будет достаточно в объект event добавить какой-то флаг.

Ну и всё это дело ещё не тестировал...

Потом ещё функционал с отправкой файлов добавлю, документацию напишу, сам плагин расширю и сделаю настраиваемым, залью на гит и стану знаменитым

В общем код:
Код: 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.
<?php if(!empty($_POST['test'])): ?>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
<?php exit; endif; ?>
<!doctype html>
<html lang="en">

<head>
    <title>test</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
        $.fn.superAjax = function(method, options){
            if(!method){
                
                var self = this;
                var protoObject = {
                    _selector: null,
                    
                    _handlers : {},
                    _actFunc: null,
                    
                    addHandlers: function(callbacks){
                        for (var name in callbacks){
                            this._handlers[name] = callbacks[name];
                        }
                    },
                    removeHandler: function(name){
                        delete this._handlers[name];
                    },
                    resetHandlers: function(){
                        this._handlers = {};
                    },
                    setSuccess: function(name){
                        self.attr('data-success', name);
                    },
                    setError: function(name){
                        self.attr('data-error', name);
                    },
                    remove: function(){
                        if(this._selector){
                            $('body').off('submit', this._selector, this._actFunc);
                            delete $.fn.superAjax._instances[this._selector];
                        }else{
                            $(this._selector).off('submit', this._actFunc);
                            $(this).data('superAjax', null);
                        }
                    }
                };
                
                protoObject._actFunc = function(e){
                    e.preventDefault();
                    var frm = $(this);

                    $.ajax({
                        url: frm.attr('action'),
                        type: frm.attr('method'),
                        data: frm.serialize(),
                        success: protoObject._handlers[frm.attr('data-success') || 'defaultSuccess'] || function(data){
                            console.log(data);
                        },
                        error: protoObject._handlers[frm.attr('data-error') || 'defaultError'] || function(error){
                            console.log(error);
                        }
                    });
                };
                
                
                if(this.selector){
                    protoObject._selector = this.selector;
                    $('body').on('submit', this.selector, protoObject._actFunc);
                    $.fn.superAjax._instances[this.selector] = protoObject;
                }else if(this.length>1){
                    this.each(function(){
                        $(this).on('submit', protoObject._actFunc);
                        $(this).data('superAjax', protoObject); 
                    });
                }else if(this.length===1){
                    this.on('submit', protoObject._actFunc);
                    this.data('superAjax', protoObject);
                }
                
                return this;
            }else{
                if(this.selector){
                    if ($.fn.superAjax._instances[this.selector]){
                        $.fn.superAjax._instances[this.selector][method](options);
                    }
                    return this;
                }else{
                    this.each(function(){
                        if(!$(this).data('superAjax')) $(this).superAjax();
                        $(this).data('superAjax')[method](options);
                    });
                }
            }
        };
        $.fn.superAjax._instances = {};
    </script>
    <script>
    $(document).on('ready', function(){
        
        $('form.ajax').superAjax().superAjax('addHandlers', {
            errorHandler: function (error){
                alert('got special error');
            },
            successHandler: function (data){
                $('body').append(data);
            }
        });
        
        $('.unique').next().prev().superAjax().superAjax('addHandlers', {
            errorHandler: function (error){
            },
            successHandler: function (data){
                alert('clicked unique');
            },
            successHandler2: function (data){
                alert('clicked unique2');
            } 
        });
    });
    </script>
</head>

<body>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="unique">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Уникальная форма" />
    </form>
    <form action="" method="post" data-success="successHandler2" data-error="errorHandler" class="unique">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Уникальная форма" />
    </form>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
    <form action="" method="post" data-success="successHandler" data-error="errorHandler" class="ajax">
        <input type="hidden" name="test" value="1" />
        <input type="submit" value="Протестировать" />
    </form>
</body>
</html>



Если тут ещё кто-то есть - критикуйте. С удовольствием выслушаю поправки и замечания (возможно кто слёту баг какой потенциальный найдёт)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344005
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
т.е. для отправки данных нужно обязательно form?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344045
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрПотом ещё функционал с отправкой файлов добавлю, документацию напишу, сам плагин расширю и сделаю настраиваемым, залью на гит и стану знаменитым
вы молодец! )) Вот на кого равняться надо.
Удачи!
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344175
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ПрограмёрПотом ещё функционал с отправкой файлов добавлю, документацию напишу, сам плагин расширю и сделаю настраиваемым, залью на гит и стану знаменитым
вы молодец! )) Вот на кого равняться надо.
Удачи!

Это сарказм? :))
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344219
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
совсем нет). Никаких подвохов).
У вас есть и терпение и практический код.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344242
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
т.е. для отправки данных нужно обязательно form?

не понял вопрос... поясни.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344249
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрвадяПрограмёр,
т.е. для отправки данных нужно обязательно form?

не понял вопрос... поясни.
у меня со страницы поисходит отправка с 20-30 мест кода
я делаю просто con.send(строка данных);
ну и внужном месте обработчик, он может быть как простой функцией, так и свойством объекта.
как такое организуется в твоём случае.

как организована обработка ajax на сервере, такого объёма типов сообщений?

зы
надо сказать что по количеству кода для ajax на стороне клиента требуется больше.....
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344268
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёрпропущено...


не понял вопрос... поясни.
у меня со страницы поисходит отправка с 20-30 мест кода
я делаю просто con.send(строка данных);
ну и внужном месте обработчик, он может быть как простой функцией, так и свойством объекта.
как такое организуется в твоём случае.

как организована обработка ajax на сервере, такого объёма типов сообщений?

зы
надо сказать что по количеству кода для ajax на стороне клиента требуется больше.....

1. компонент предназначен строго для превращения обычных форм в ajax формы. То есть он предназначен именно для работы с формами (при прямой отправке функцией ajax я вообще не вижу смысла в подобном компоненте).

2. Зависит от того, как спроектирована система. Сервер может принимать запросы по разным адресам... может сам запрос разбирать и принимать решение в какой обработчик отправить... а может и ещё как-то (или смешивать обе практики). По сути, этот код отправляет ровно ту же форму, что и при обычном синхронном запросе (с перезагрузкой страницы при обычной отправке), только делает это асинхронно, ничего не перезагружая. Потому немного удивляет вопрос... возможно я тебя просто не могу правильно понять... возможно ты от моего кода хочешь чего-то большего, чего я в него не закладывал :)

3. Это не код для отправки ajax. Это код для автоматического навешивания ajax на все формы, а также на селекторы. Тут больше кода для того, что бы это стало полноценным компонентом jquery :) Как я говорил, чистая отправка ajax - вообще одна команда
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$.ajax({
    url: [куда], 
    data: [что], 
    type: [get/post], 
    success: [обработчик], 
    error: [обработчик],
    [и ещё много возможных настроек]
});
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344301
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

1,3 - понял.
2- меня интересует вариант когда на один url отправляется несколько запросов -20-30 как организовано? запросов типа приведённому в п.3.
не конкретная реализация а принцип.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344369
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,

1,3 - понял.
2- меня интересует вариант когда на один url отправляется несколько запросов -20-30 как организовано? запросов типа приведённому в п.3.
не конкретная реализация а принцип.

Смотря зачем они туда отправляются :) как вариант в запросе может быть указан метод обработки (в самом массиве с данными быть одним из полей)...
Ну а там на что фантазии хватит. На сервере может быть обычных switch..case, if...elseif...else или вообще могут существовать разные классы обработчики. Или же запрос может вызывать какой-то метод определённой модели (зачастую небезопасно).

Но я уже не помню когда мне приходилось последний раз по одному url разнотипные запросы обрабатывать. Для каждого типа запроса свой action создаётся в контроллере и в нём всё что надо делается. А клиент соответственно в зависимости от смысла запроса (его типа) шлёт его на определённый action.

Учитывая что эта потребность у меня была изначально и пропала с опытом, есть предположение, что потребность в таком возникает из-за неправильной архитектуры и если не всегда, то как минимум почти всегда может быть исключена посредством правильного проектирования.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344374
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНо я уже не помню когда мне приходилось последний раз по одному url разнотипные запросы обрабатывать. Для каждого типа запроса свой action создаётся в контроллере и в нём всё что надо делается. А клиент соответственно в зависимости от смысла запроса (его типа) шлёт его на определённый action.
+1
Это и есть стандарт REST - разный урл по задаче.
В противоположность - один канал+свой протокол, и внутри разбирайся расшифровывай.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344379
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо я уже не помню когда мне приходилось последний раз по одному url разнотипные запросы обрабатывать. Для каждого типа запроса свой action создаётся в контроллере и в нём всё что надо делается. А клиент соответственно в зависимости от смысла запроса (его типа) шлёт его на определённый action.

Учитывая что эта потребность у меня была изначально и пропала с опытом, есть предположение, что потребность в таком возникает из-за неправильной архитектуры и если не всегда, то как минимум почти всегда может быть исключена посредством правильного проектирования.
вот тут и возникает вопрос подхода к проектированию.
и самое интересное, что если в одном яп это нормально, то в другом это считают нонсенсом.
у меня для обработки запроса на сервере требуется порядка 10 строк (бывает и больше но не часто) - логика обработки данных сосредоточена в базе.
генерить на каждый запрос свой url , а практически - файл - очень накладно. я их объединяю по принадлежности к странице.
авторswitch..case, if...elseif...else
от использования такого я отказался , потому как чепочка из 30 case или if выглядит не очень...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344391
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

ещё раз, MVC решит твою проблему :) Всё из-за того, что ты его отверг раньше времени.
Один запрос не обязательно равен одному файлу. у меня вот зачастую на весь модуль 2 контроллера: 1 для админа и 1 для рядового пользователя.
В каждом контроллере десятки функций (экшенов), а каждая из них отвечает за конкретный запрос (урл).

Обычно функции в контроллерах разделяют не по правам, как я, а по смыслу... Но мне так удобнее... Я просто вкладываю в разбиение смысл "это действия для <<писателя>> контента, а эти для <<читателя>>". Учитывая что чётких правил по этому поводу нет, никто не может сказать что я не прав. Просто не помню на практике того, кто бы сказал, что ему так работать не удобно и он бы сделал иначе (многие мои решения подвергались такой критике, но это - никогда :)) ).
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344406
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

твой подход, такой же как у меня, только не применяю громких слов
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344419
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,

твой подход, такой же как у меня, только не применяю громких слов
Каких громких слов?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344420
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

MVC ...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344424
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
твой подход, такой же как у меня, только не применяю громких слов
Приехали. Подход тот же, только споров о гениальности на 12 станиц.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344502
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,

твой подход, такой же как у меня, только не применяю громких слов

Не могу согласиться. У нас принципиально разные подходы. Иначе мы бы столько не спорили :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344511
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,

MVC ...
И что же в этой абревиатуре громкого?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344513
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
да я не спорю.
просто ответь для чего нужен этот плагин?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344515
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ что же в этой абревиатуре громкого?
просто она скрывает за собой необходимость городить код.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344516
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторИ что же в этой абревиатуре громкого?
просто она скрывает за собой необходимость городить код.
А если её не произносить, то код что-ли сам напишется? :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344517
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, вот Вам другая абревиатура: FRP, - кода будет меньше. Попробуйте.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344520
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадя, вот Вам другая абревиатура: FRP, - кода будет меньше. Попробуйте.
всё очень хорошо, когда знаешь область применения, и не суёшь на все проекты. у всего своя оптимальная область использования.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344521
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAвадя, вот Вам другая абревиатура: FRP, - кода будет меньше. Попробуйте.
всё очень хорошо, когда знаешь область применения, и не суёшь на все проекты. у всего своя оптимальная область использования.
Вы готовы назвать область применения/использования FRP? Или MVC?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344522
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВы готовы назвать область применения/использования FRP? Или MVC?

я не готов, у меня есть своя ниша применения моих проектов, и я не вижу в ней этих методов.
когда я не смогу создать проект элементарными действиями - тогда ...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344524
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторВы готовы назвать область применения/использования FRP? Или MVC?

я не готов, у меня есть своя ниша применения моих проектов, и я не вижу в ней этих методов.
когда я не смогу создать проект элементарными действиями - тогда ...
Вот и выходит, что MVC и FRP громкие только для Вас. Крам уха слышали через форточку. Откройте что-ли окно пошире :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344526
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
да я не спорю.
просто ответь для чего нужен этот плагин?

Для того же, для чего нужен ajaxForm. Только этот плагин позволяет ещё меньше обслуживающего кода писать. По сути просто прицепил его к форме или селектору, описал обработчики событий и готово :) Ну и разумеется ajaxForm не реализует автоматический вызов разных обработчиков и их смену "на лету"

Отличительная черта от большинства jquery плагинов это то, что он может быть повешен не только на конкретный массив элементов, который существует в момент вызова, а может и цепляться к "селектору", что позволяет вызвать его функцию один раз и как только какая-то из форм попадёт под правило (под селектор), она тут же зацепит указанный функционал.

Считаю что так намного удобнее.

удобства плагина на данный момент
То есть в целом удобства плагина на данный момент (хотя он ещё зелёный до невозможности):
1. Подключение в одну строку
2. Не добавляет лишнего html кода
3. Лёгкий в настройке
4. Может подключаться по селектору без необходимости повторного вызова для подключения к новым формам (делегирует обработку событий)
5. Лёгкое отключение от формы в случае необходимости (многие плагины вообще не предусматривают возможность отключения)
6. Позволяет менять обработчики ответов сервера для разных форм "на лету".
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39344546
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
заметь, ты даже не упомянул о применении данного плагина в mvc.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345079
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
заметь, ты даже не упомянул о применении данного плагина в mvc.

Может мне надо было ещё про шаблон мост или декоратор вспомнить? :))

В общем не понял к чему ты это сказал, но прозвучало это не круто :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345153
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
я не хотел ничего такого :)
просто мне хочется понять как это будет в системе выглядеть.
я ведб не на пустом месте такой подход использую.
имея богатый опыт программирования на access, мне многие подходы странными кажутся. пусть там и 2-х звенная структура, но системы строили огромные, и очень сложные. то что счас тут ругают там применяли и применяют.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345165
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Если бы ты что то любил кроме своего кода, можно было бы понять. Или MVVP вместо MVC.
А то ведь ничего кроме первой любви юности).
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345169
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
я не хотел ничего такого :)
просто мне хочется понять как это будет в системе выглядеть.
я ведб не на пустом месте такой подход использую.
имея богатый опыт программирования на access, мне многие подходы странными кажутся. пусть там и 2-х звенная структура, но системы строили огромные, и очень сложные. то что счас тут ругают там применяли и применяют.
Я тоже принимал участие в разработке системы, что успешно крутилась на сотнях серверов по всей России.
Часы простоя исчислялись миллионами рублей.
И что? Это мне никак не мешает применять сегодня различные подходы.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345180
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не проит применять разные подходы.
тут уже писали про кроиков и гаубицы...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345195
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя не проит применять разные подходы.
тут уже писали про кроиков и гаубицы...

Вадя, как часто ты в своей работе используешь наработки других программистов? Часто ведь? взять даже ту же openCMS или как там её. :) Ты ведь не сам её писал, но в работе пользуешь. А теперь представь, что у тебя её не было и тебе пришлось бы придумывать и писать её с нуля. Это лишние затраты?

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

С другой стороны есть интеллектуальный труд других в виде идеи. Кто-то, кто хорошо знает программирование и сталкивается со множеством задач подумал, и придумал шаблон поведения (шаблон мышления, работы или написания кода), который решает те или иные проблемы. И в этот момент, когда тебе говорят что есть чужая интеллектуальная наработка, которая решает твою задачу, ты говоришь "я не использую умных слов" и "про кроликов и гаубицы".

Какие-то двойные стандарты прям. Чем этот интеллектуальный труд отличается от интеллектуального труда вложенного в код OpenCMS?

Разумеется дело каждого какие инструменты использовать, но я могу назвать уйму причин почему следует в работе пользоваться чужими уже проверенными наработками, а не создавать свои собственные. Исключение - если чужие наработки не решают имеющиеся задачи или накладывают ограничения (например правовые)... Но сейчас их столько, что зачастую каждую задачу можно решить просто погуглив :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345216
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
в твоих словах много мудрости. и я со многим согласен, но позволю себе несколько не привычныйдля некоторых товарищей подход,
я не отрицаю всю прелесть и возможности их методов, хочу и от них адекватного отношения.
из опыта акса я вынес необходимость качественного построения базы- таблицы, связи , индексы .
и только потом всё осталное , в аксе все строится на обработке (отображении результатов) запросов к базе. единственное что там мешало - невозможность работать через веб
ws снимает это ограниение. есть база, есть хранимки обрабатывающие данные и возвращающие готовые для отображения данные.
js позволяет сформировать данные для зпароса в удобном виде - ws передать на сервер, на сервере запустить хранимку и отдать результат.
посты в ветке по java и тут позволяют сделать вывод, что работа с базами это ахилесова пята. очень и очень низкий уровень. для меня же получить нужные и удобные для отображения данные (тем более в хранимке) не проблема.
по сути получается двухзвенка. в аксе такое считается правильным там куча запросов к базе/серверу.
стоимость запроса с использование ajax , несколько лет назад, до jquery, была очень высока, поэтому от них и отказались в пользу других методов, но новые методы jquery и ws (тем более) позволяют взять многое из старого, развитие идёт по спирали.
и проекты в аксе строили и строят не одиночки и сложность проектов достаточна, поэтому опыт из акса я считаю отвергать не стоит.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345232
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
если коротко, то ты взял за образец ВЕБ проекта, проект из десктопа даже не клиент-сервер(Access).
Все остальные слова, это так - информационный шум. Про сокеты и AJAX мы уже разобрали.
Скучно.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345238
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли коротко, то ты взял за образец ВЕБ проекта, проект из десктопа даже не клиент-сервер(Access).

можно и так сказать, только именно клиент-сервер(Access) . проект .adp
а это полнофункциональный клиент для mssql, ориентированный на использование хранимых процедур.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345254
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяможно и так сказать, только именно клиент-сервер(Access) . проект .adp
С этим костылём он только стал похожим на Delphi и бейсик. Но никак не на веб проект.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345262
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяможно и так сказать, только именно клиент-сервер(Access) . проект .adp
С этим костылём он только стал похожим на Delphi и бейсик. Но никак не на веб проект.
от него этого и не требовалось, он и так был похож на делфи :)
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345271
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпосты в ветке по java и тут позволяют сделать вывод, что работа с базами это ахилесова пята. очень и очень низкий уровень.

ResultSet и Statement в java ничем особо не отличается от RecordSet и Command в аксесс,


о каком низком уровне при использовании ORM речь идёт?

------------------------------------
-Ну и гавно этот ваш Карузо!
- Мойша, ты слышал его в ЛА Скала? ))
- Да Нет, Рабинович напел...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345281
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяот него этого и не требовалось, он и так был похож на делфи :)
ты контекст потерял? Зачем его нахваливать в веб проектах?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345297
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяПрограмёр,
в твоих словах много мудрости. и я со многим согласен, но позволю себе несколько не привычныйдля некоторых товарищей подход,
я не отрицаю всю прелесть и возможности их методов, хочу и от них адекватного отношения.
из опыта акса я вынес необходимость качественного построения базы- таблицы, связи , индексы .
и только потом всё осталное , в аксе все строится на обработке (отображении результатов) запросов к базе. единственное что там мешало - невозможность работать через веб
ws снимает это ограниение. есть база, есть хранимки обрабатывающие данные и возвращающие готовые для отображения данные.
js позволяет сформировать данные для зпароса в удобном виде - ws передать на сервер, на сервере запустить хранимку и отдать результат.
посты в ветке по java и тут позволяют сделать вывод, что работа с базами это ахилесова пята. очень и очень низкий уровень. для меня же получить нужные и удобные для отображения данные (тем более в хранимке) не проблема.
по сути получается двухзвенка. в аксе такое считается правильным там куча запросов к базе/серверу.
стоимость запроса с использование ajax , несколько лет назад, до jquery, была очень высока, поэтому от них и отказались в пользу других методов, но новые методы jquery и ws (тем более) позволяют взять многое из старого, развитие идёт по спирали.
и проекты в аксе строили и строят не одиночки и сложность проектов достаточна, поэтому опыт из акса я считаю отвергать не стоит.

"я не отрицаю всю прелесть и возможности их методов, хочу и от них адекватного отношения" - кого "их"? )) Если ты о том, кто паттерны придумывает общеизвестные, то я очень сомневаюсь что они на этом форуме сидят. Зачастую эти ребята русского не знают :) Так что странно ожидать от них, что они прислушаются к каким-то из твоих слов... они их просто вероятнее всего не услышат

"из опыта акса я вынес необходимость качественного построения базы- таблицы, связи , индексы" - согласен, но темы не касается :)

про БД комментировать не хочу, потому что снова застрянем на споре по бд, а мне это поднадоело...

а вот дальше интереснее:
"стоимость запроса с использование ajax , несколько лет назад, до jquery, была очень высока, поэтому от них и отказались в пользу других методов" - история jquery . Как видим jquery умела работать с ajax уже в январе 2006 года (11 лет назад!!!). Сам ajax стала официальной технологией в начале 2005-ого... и ничего там сложного и затратного не было... я первый год работы программистом противился разным фреймворкам, а потому точно знаю как с ajax без jquery работать :)) Да и всё остальное без jquery делать могу на чистом js.
А до того, как в js добавили XMLHttpRequest, был ещё такой прекрасный элемент как iframe. Его использовали даже когда XMLHttpRequest уже был.. для отправки файлов использовали, так как этот новый объект не давал такой возможности. Так вот, iframe вообще фиг знает когда появился... я ещё будучи совсем малым (лет 14 назад) когда только приступал к изучению программирования и иногда с html и js дурачился, он уже там был. Пишут что майкрософт его добавила ещё в 96-ом году... думаю другие не намного позже :)

Как-то не очень правдоподобно причина выбора других технологий звучит. Больше смахивает на "просто не знал что можно иначе" :) Так что никакого "по спирали" тут нет. По спирали идёт история, мода (и дизайн в целом) и другие гуманитарные направления. Я не представляю себе что значит пойти по спирали в науке про информацию или в математике... Это значит просто забыть несколько десятков/сотен лет наработок? Зачем тогда такая наука? :))


P.S. не знаю правда ли, но помню не раз слышал что access самая убогая из всех существующих СУБД :) Сам в ней не работал, но учитывая такой настрой общества против этого инструмента - далеко не факт, что принимаемые на его основе решения являются хотя бы близки к оптимальным... Кстати, я тут поглядел статистику использования СУБД... MS Access где-то далеко-далеко. Процент настолько мал, что она даже в рейтинги зачастую не включается. Или её переименовали? (нашёл только в одном рейтинге, где она занимала 0.4% от общего числа... рейтинг использования в отделениях федеральных органов власти в россии... в остальных рейтингах она отсутствовала).
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345342
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторResultSet и Statement в java ничем особо не отличается от RecordSet и Command в аксесс,
я ведь не об этом , для меня только буквами в названии,
но те кто их используют отличаются друг от друга в десятки раз. не первый год наблюдаю, сколько усилий тратят на решение элементарных задач, сколько кода наворачивают....

2Програмёр про стоимость.
я не отрицаю, что у тебя и у тех, кто занимается ajax, есть наработки на ajax, позволяющие снизить стоимость , но мне есть с чем сравнивать.
тот же плагин, количество кода, да само его наличие, говорит о многом. это относится не только к клиентской части, ко всей системе. смахивает на .. не читал, но осуждаю...

авторавторЭто значит просто забыть несколько десятков/сотен лет наработок? Зачем тогда такая наука? :))
спираль от круга отличается. я, наоборот, предлагаю не забывать , а использовать то, что лучшее было.

авторP.S. не знаю правда ли, но помню не раз слышал что access самая убогая из всех существующих СУБД
по аксу ты озвучил довольно распространённое мнение, в ветке акса об этом много спорили. но в нём есть одно неоспоримое - он учит плотно работать с базой, не важно файл-сервер или клиент-сервер.
я с ним работал, и могу сказать, что его возможности очень огромны, у него своя ниша. убогость заключается в головах тех кто распространяет слухи про убогость.


счас модно хибер использовать, но хибер не сможет использовать все возможности , которые придумали разрабы для mssql и mysql , не говоря уж о куче других .
меня бесит - когда придумали новый инструмент, намного облегчающий жизнь, столько шуму против него , чем это вызвано? страхом перед новым, боязнью изучить? потерять наработанное? костностью мышления? это напоминает бунты против машин в Англии. знаний хватает - используйти новый инструмент и достигните новых уровней.
MVVP , MVC, FRP и можно ещё продолжать. может быть стоит остановиться на размножении этих абривиатур? одно их количество говорит о том, что допустимы многие подходы к программированию. на том же хабре появляются статьи защищающие функциональное программирование.
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345364
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMVVP , MVC, FRP и можно ещё продолжать. может быть стоит остановиться на размножении этих абривиатур?
Может тогда в развитии информационных технологий стоит остановиться? :)

От того что в Вашей узенькой нише стагнация, другим-то зачем останавливаться?
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39345780
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторResultSet и Statement в java ничем особо не отличается от RecordSet и Command в аксесс,
я ведь не об этом , для меня только буквами в названии,
но те кто их используют отличаются друг от друга в десятки раз. не первый год наблюдаю, сколько усилий тратят на решение элементарных задач, сколько кода наворачивают....

2Програмёр про стоимость.
я не отрицаю, что у тебя и у тех, кто занимается ajax, есть наработки на ajax, позволяющие снизить стоимость , но мне есть с чем сравнивать.
тот же плагин, количество кода, да само его наличие, говорит о многом. это относится не только к клиентской части, ко всей системе. смахивает на .. не читал, но осуждаю...

авторпропущено...

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

авторP.S. не знаю правда ли, но помню не раз слышал что access самая убогая из всех существующих СУБД
по аксу ты озвучил довольно распространённое мнение, в ветке акса об этом много спорили. но в нём есть одно неоспоримое - он учит плотно работать с базой, не важно файл-сервер или клиент-сервер.
я с ним работал, и могу сказать, что его возможности очень огромны, у него своя ниша. убогость заключается в головах тех кто распространяет слухи про убогость.


счас модно хибер использовать, но хибер не сможет использовать все возможности , которые придумали разрабы для mssql и mysql , не говоря уж о куче других .
меня бесит - когда придумали новый инструмент, намного облегчающий жизнь, столько шуму против него , чем это вызвано? страхом перед новым, боязнью изучить? потерять наработанное? костностью мышления? это напоминает бунты против машин в Англии. знаний хватает - используйти новый инструмент и достигните новых уровней.
MVVP , MVC, FRP и можно ещё продолжать. может быть стоит остановиться на размножении этих абривиатур? одно их количество говорит о том, что допустимы многие подходы к программированию. на том же хабре появляются статьи защищающие функциональное программирование.

Наработок по ajax у меня нет :) Для этих целей у меня есть только одна чужая наработка - jquery и умение её использовать (то есть банальный опыт)
"тот же плагин, количество кода, да само его наличие, говорит о многом" - последний мой код появился за 2 часа работы... тот что до него за 30 минут... а тот, который я писал в первом своём сообщении - за 10 минут. Так что наличие этого плагина говорит лишь о том, что у меня было 2 часа свободного времени, что бы его написать :) (а написанием его я занялся именно обсуждая эту тему)

"спираль от круга отличается. я, наоборот, предлагаю не забывать , а использовать то, что лучшее было." - софистика в чистом виде :) Вопрос не о геометрии этих фигур, а о том, что в программировании отвергнутые технологии никогда в строй не возвращаются. Иначе такое отвергание считается не "витком эволюции" а банальной ошибкой!!! Так что ни кругов ни спиралей ни эллипсов в программировании и математике НЕТ (как и в других точных науках)!

"по аксу ты озвучил довольно распространённое мнение" - так может оно правильное? Знаешь, у нас был очень хороший учитель по военному делу в школе и он часто фразу такую говорил "это не я ногу сбиваю, а строй неправильно идёт!". Разумеется намекая на то, что ученик не хочет свою ошибку признать... Так вот, может и в нашем случае ногу сбивает не строй, а кто-то конкретный

"меня бесит - когда придумали новый инструмент, намного облегчающий жизнь, столько шуму против него , чем это вызвано?" - о каком инструменте речь сейчас? (пример)

"MVVP , MVC, FRP и можно ещё продолжать. может быть стоит остановиться на размножении этих абривиатур? одно их количество говорит о том, что допустимы многие подходы к программированию." - не стоит! Эта фраза равносильна "может не надо придумывать новых алгоритмов, ведь просто количество известных алгоритмов говорит о том, что программировать можно как угодно". Однако я посмотрел бы как сейчас развивались те же социальные сети, если бы не были придуманы алгоритмы работы с графами... Если бы ещё начиная со школы нам бы не рассказывали что такое графы, зачем нужны и как с ними работать (их основные разновидности и решаемые задачи). Ну и деревья, бинарные деревья, двоичный/бинарный поиск, хэш функции, поиск по хэш функциям и многое другое что мы знаем и используем... просто никогда не задумываемся, потому что учим это с самого начала и воспринимаем не как готовое решение, а как инструмент (хотя реально это готовое решение для нас, по типу того же MVC)

Останавливаться стоит только тогда, когда тебя это больше не интересует... Если в науке людей перестаёт интересовать одно из основных направлений этой науки, она обычно забывается и уходит на второй план уступая место другим. Я такого информатике не желаю...
...
Рейтинг: 0 / 0
Автоматический обработчик html форм на JS
    #39346009
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нежданчик. Новосозданный компонент в работе пригодился :) К форме надо обработчик на лету привязать. Не думал что это так скоро случится... Ещё раз убеждаюсь что разную мелочёвку в свободное время надо почаще писать. Лишней не будет :)
...
Рейтинг: 0 / 0
353 сообщений из 353, показаны все 15 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Автоматический обработчик html форм на JS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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