Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2011, 18:13
Аватар для systemiv
Профессор
Отправить личное сообщение для systemiv Посмотреть профиль Найти все сообщения от systemiv
 
Регистрация: 19.08.2011
Сообщений: 186

Обёртка под XMLHttpRequest
Пробую написать небольшую обёрточку для работы с аяксом.
Сделал пару набросков, хочу услышать Ваше мнение, стоит ли оно того?
Возможно у Вас есть свои наработки в этом вопросе.
Вот код:
var httpAjax = function(){
		try{
			this.httpAjax = new ActiveXObject('Msxml2.XMLHTTP');
		}catch(e){
			try{
				this.httpAjax = new ActiveXObject('Microsoft.XMLHTTP');
			}catch(e2){
				this.httpAjax = false;
			}
		}

		if(!this.httpAjax && typeof XMLHttpRequest != 'undefined'){
			this.httpAjax = new XMLHttpRequest();
		}
		if(!this.httpAjax){
			alert('Ошибка при создании экземпляра класса XMLHTTP.');
		}
	}
	httpAjax.requestAjax = false;
	httpAjax.callback = function(){
		alert(this.requestAjax.responseText);
	};
	httpAjax.goAjax = function(urlAjax){
		httpAjax.onreadystatechange = this.callback;
		httpAjax.open('GET', urlAjax, true);
		httpAjax.send(null);
	};

	var test = new httpAjax();
</script>
<input type="text" id="inputName" /><br />
<span style="cursor: pointer; text-decoration: underline" onclick="test.goAjax('test.php?t=1')">
Сделать запрос
</span>
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2011, 20:15
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Opera 7 (или какая там версия в 2003 году все еще не поддерживала AJAX?) и IE6 в большинстве проектов никому не нужны, а IE7+ поддерживает XMLHttpRequest, поэтому всю эту кучу try-catch и ненужных проверок можно убрать:
var httpAjax = function(){
	this.httpAjax = new XMLHttpRequest;
}

Конструкторы в JavaScript принято именовать в стиле UpperCamelCase
function HttpAjax() {
…
}

и раз уж это конструктор, то и методы логично в прототип засунуть.
Ответить с цитированием
  #3 (permalink)  
Старый 30.08.2011, 21:12
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

А как же метод POST? А передача параметров запроса только через URL?
Ответить с цитированием
  #4 (permalink)  
Старый 30.08.2011, 22:15
Аватар для systemiv
Профессор
Отправить личное сообщение для systemiv Посмотреть профиль Найти все сообщения от systemiv
 
Регистрация: 19.08.2011
Сообщений: 186

Octane, Вот за это спасибо=)
Но есть одно НО, если я засуну в прототип, то для всех экземпляров будет один и тот же метод.
По концепции которую я пока держу в голове, у меня в каждом экземпляра класса будут переопределятся методы.

ваый, Ну сейчас только GET изучил, поэтому и обёртка под него.
А в дальнейшем хочу сделать что то на подобии jQuery.ajax

Последний раз редактировалось systemiv, 30.08.2011 в 22:28.
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2011, 08:59
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

1. в callback должен передаваться текст ответа и обьект XMLHttpRequest
2. всё в прототипы, но это уже сказали.
3. конструктор HttpAjax ничего не принимает ? :О

это еще "чертежи", я понимаю. буду ждать, пока допилишь скрипт
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Под IE8 задизейблена кнопка, а под Mozilla нет Svetich Internet Explorer 2 05.07.2011 10:03
XMLHttpRequest status=0, хотя запрос проходит. arigasa AJAX и COMET 4 15.02.2011 20:14
Подстроить высоту страницы под юзера, прошу совета у гуру batonsu Events/DOM/Window 11 10.11.2010 19:39
Создание и уничтожение XMLHttpRequest Vlas AJAX и COMET 9 22.05.2009 12:38
Выезжание таблицы из под ниоткуда. lancer Элементы интерфейса 3 29.06.2008 15:03