powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Фреймворки AJAX с удобной обработкой event-ов
8 сообщений из 8, страница 1 из 1
Фреймворки AJAX с удобной обработкой event-ов
    #34071627
Vladimir Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, какие есть фреймворки чтобы удобно было эвенты от контролов на странице отправлять для обработки серверу, с минимальной ручной кодировкой яваскриптов на стороне клиента, и чтобы можно было ответы от сервера распихивать по клиентским контролам?
Вручную я всё это написать могу, но думается мне что велосипед такой давно существует.
Посмотрел на реализацию JSF - что-то уж очень оно там наморочено, да и код сервлетов который там генерится, какой-то не-по-детски избыточный...
...
Рейтинг: 0 / 0
Фреймворки AJAX с удобной обработкой event-ов
    #34071629
Vladimir Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечная идея такая:
AJAX-страница говорит серверу "поступил такой-то эвент от такого-то контрола с такими-то свойствами". Сервер отвечает "сделать то-то с такими-то контролами/объектами". Но не написанием кучи обработчиков и толстых скриптов на вебе а с помощью каких-то централизованных диспетчирующих методов. Иначе говоря = интересует унифицированная система диспетчирования сообщений и ответов.
...
Рейтинг: 0 / 0
Фреймворки AJAX с удобной обработкой event-ов
    #34071638
Фотография Damnedest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я конечно понимаю, что не вариант, но можно делать eval от ответа сервера. А сервер будет возвращать команды, для выполнения.
...
Рейтинг: 0 / 0
Фреймворки AJAX с удобной обработкой event-ов
    #34071646
Vladimir Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Damnedestя конечно понимаю, что не вариант, но можно делать eval от ответа сервера. А сервер будет возвращать команды, для выполнения.

Не, это изврат получится...
Хочется так сделать: элемент при OnClick передает яваскрипту ссылку на себя. Яваскрипт по этой ссылке собирает из документа всё что про этот элемент известно, и посылает серверу. Сервер, изучив пришедшее сообщение, отвечает другим сообщением в унифицированном формате, которе анализируется клиентским скриптом. Но чтобы не было кучи обработчиков "кто в лес кто по дрова", а централизовать весь обмен с сервером в едином скрипте, выработать унифицированный формат сообщения, и единообразно диспетчировать по странице ответы сервера.
...
Рейтинг: 0 / 0
Фреймворки AJAX с удобной обработкой event-ов
    #34071653
Фотография Damnedest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
onclick="SendReq(this)";

function SendReq(obj)
{
делаем запрос obj.name;
}

function DoServerAction(action)
{
evaluate(action);
}

function ChangeName(obj_name, nname)
{
document.getElementById(obj_name).name = nname;
}

Соответственно сервер будет возвращать что-то типа
Код: plaintext
ChangeName('input1', 'input2');
...
Рейтинг: 0 / 0
Фреймворки AJAX с удобной обработкой event-ов
    #34071664
Vladimir Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Damnedest
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
onclick="SendReq(this)";

function SendReq(obj)
{
делаем запрос obj.name;
}

function DoServerAction(action)
{
evaluate(action);
}

function ChangeName(obj_name, nname)
{
document.getElementById(obj_name).name = nname;
}

Соответственно сервер будет возвращать что-то типа
Код: plaintext
ChangeName('input1', 'input2');


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

PS: если б с сервера сериализованный объект можно было клиентскому яваскрипту скормить (или сделать RMI-callback через хттп) - было бы еще интереснее :) но это уже из области шизы :)
...
Рейтинг: 0 / 0
Фреймворки AJAX с удобной обработкой event-ов
    #34071677
Фотография Damnedest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
ChangeName('input1', 'input2');
соответственно ранво
Код: plaintext
document.getElementById('input1').name = 'input2';
Просто это как раз и есть унификация...
...
Рейтинг: 0 / 0
Фреймворки AJAX с удобной обработкой event-ов
    #34072666
Фотография Damnedest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
function EventFramework() {

	this.hasAttach = window.attachEvent ? true : false;
	
	this._id =  0 ;
	this._handlers = new Array();
	
	this._emulateId =  0 ;
	this._emulateHandlers = new Array();
	
	this.AttachEvent = function( element, eventName, object, functionName ) {
		
		var handlerFunc = function( ev ){ 
		  if( window.event ) ev = window.event; 
		  
		  ev.GetPoint = function(){
		    var x, y;
		    if( IsValid( this.srcElement ) ){
	        y = document.body.scrollTop  + this.clientY;
	        x = document.body.scrollLeft + this.clientX;	
		    }
		    else {
	        y = this.pageY;
	        x = this.pageX;	
		    }
		    return new Point( x, y );
		  }
		  
		  if( object == null )
		    return functionName( element, ev );
		  else
		    return object[ functionName ]( element, ev );
	  }
		
		if( this.hasAttach ) 
			element.attachEvent(eventName, handlerFunc);
		else
			element.addEventListener(eventName.replace( 'on', ''), handlerFunc, false);

    this._id++;
		this._handlers[ this._id ] = {el: element, en: eventName, handler: handlerFunc};
		
		return this._id;    
	}
	
	this.DetachEvent = function( id ) {  
		var obj = this._handlers[ id ];
		if( obj != null ) {
			
			var element = obj.el;
			var eventName = obj.en;
			
			if( this.hasAttach )
				element.detachEvent( eventName, obj.handler );
			else
				element.removeEventListener(eventName.replace( 'on', ''), obj.handler, false);
			
			obj.handler = null;
			this._handlers[ id ] = null;
		}
	}
	
	this.DetachAllEvent = function() {
  	for( var ii= 0 ; ii < this._id; ii++ ) this.DetachEvent( ii );
	}
	
	this.AttachEvent(window, "onunload", this, "DetachAllEvent");
}
 
EventFramework.Instance = new EventFramework();

softclub.ru там посмотри у них реализацию
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Фреймворки AJAX с удобной обработкой event-ов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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