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

Не, это изврат получится...
Хочется так сделать: элемент при OnClick передает яваскрипту ссылку на себя. Яваскрипт по этой ссылке собирает из документа всё что про этот элемент известно, и посылает серверу. Сервер, изучив пришедшее сообщение, отвечает другим сообщением в унифицированном формате, которе анализируется клиентским скриптом. Но чтобы не было кучи обработчиков "кто в лес кто по дрова", а централизовать весь обмен с сервером в едином скрипте, выработать унифицированный формат сообщения, и единообразно диспетчировать по странице ответы сервера.
...
Рейтинг: 0 / 0
21.10.2006, 12:55
    #34071653
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворки AJAX с удобной обработкой event-ов
Код: 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
21.10.2006, 13:05
    #34071664
Vladimir Kozlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворки AJAX с удобной обработкой event-ов
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
21.10.2006, 13:23
    #34071677
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворки AJAX с удобной обработкой event-ов
Код: plaintext
ChangeName('input1', 'input2');
соответственно ранво
Код: plaintext
document.getElementById('input1').name = 'input2';
Просто это как раз и есть унификация...
...
Рейтинг: 0 / 0
22.10.2006, 20:59
    #34072666
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворки AJAX с удобной обработкой event-ов
Код: 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
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Фреймворки AJAX с удобной обработкой event-ов / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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