Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Несколько проблем с Ajax
 
 автор: bronenos   (14.06.2007 в 11:36)   письмо автору
 
 

Итак, проблемы следующие:

1. Я использую для работы свой класс. Но время от времени перестают идти запросы на сервер, которые должны совершаться каждые n секунд. Таймер слететь вряд ли может. Сначала подумал, что дело в ошибках запроса, так как у меня проверялись только значения статуса 4/200. Сделал обработку тех случаев, где 4/не 200. Все равно проблемы продолжились.
Сегодня вспомнил про утечку памяти, о которой слышал раза три. И вопрос вот в чем....
Мой класс содержит свойства handler (XMLHttpRequest), url, process (onreadystatechange), response (responseText), xml (responseXML), два последних заполняются автоматом.
Как надо организовать очистку, так:
function free()
{
  this.handler = null;
  this.url = null;
  this.process = null;
  this.response = null;
  this.xml = null;
  this = null;
}

или так:
function free()
{
  this = null;
}


2. Сегодня наткнулся на "Ajax в действии" и полистал пару тройку страниц, пришел к выводу, что можно отправлять ГЕТ также как ПОСТ, только изменить первый параметр в .open() ?

3. Я решил так, у меня параллельно идет три процесса получения данных, и писать для каждого один код муторно. Решил сделать так: сначала идет классовая обработка, а потом запускается моя функция, и все данные уже готовы. Так вот... не получается - почему?
(this.process - моя функция)

this.handler.onreadystatechange = this.process;

Я могу обращаться к свойствам handler внутри функции так:
ajax.handler.readyState
И к свойствам класса
ajax.response = this.handler.responseText;

А при
this.handler.onreadystatechange = function()
{
  /* Обработка */

  this.process();
}

Никак не получается обратиться к свойствам класса (ajax не определена пишет), а к свойствам handler - this.readyState

   
 
 автор: bronenos   (14.06.2007 в 14:19)   письмо автору
 
   для: bronenos   (14.06.2007 в 11:36)
 

с 3 проблемой разобрался. остается 1 и 2.
и еще вопрос... все у меня вроде пока работает... только вот опера кидает ошибку ДОМ: INVALID_STATE_ERR. что бы это значило?

строка, на которую ругается
ajax.status = ajax.handler.status;
хотя
ajax.ready = ajax.handler.readyState;
ошибок не дает


п.с. кажется понял... пока ready не 4, то статус и неизвестен.....

   
 
 автор: bronenos   (15.06.2007 в 22:31)   письмо автору
 
   для: bronenos   (14.06.2007 в 14:19)
 

АП

+ еще вопрос.. есть ли разница:
function obj()
{
  this.f = 0;
  this.s = 1;
  this.t = function (p) {}
}

и

obj = {
  f : 0,
  s : 1,
  t : function (p) {}
}

   
 
 автор: bronenos   (16.06.2007 в 15:52)   письмо автору
 
   для: bronenos   (15.06.2007 в 22:31)
 

ап))
эта проблема наблюдается тока в опере, в лисе и осле все норм...
хелп энибади плиииз(

   
 
 автор: mr Bin   (16.06.2007 в 18:28)   письмо автору
 
   для: bronenos   (16.06.2007 в 15:52)
 

Пипец, вот неуважуха-то... знал бы - помог, а так извини...

   
 
 автор: bronenos   (16.06.2007 в 18:38)   письмо автору
 
   для: mr Bin   (16.06.2007 в 18:28)
 

хорошо хоть так... я думал вообще не читают)

   
 
 автор: mr Bin   (16.06.2007 в 18:48)   письмо автору
 
   для: bronenos   (16.06.2007 в 18:38)
 

Да нет, что Вы... Читаем :) Куда ж мы денемся...

   
 
 автор: bronenos   (16.06.2007 в 19:14)   письмо автору
 
   для: mr Bin   (16.06.2007 в 18:48)
 

короче ВСЕ проблемы решились
осталась вот только одна
чат ПРЕКРАСНО работает на лисе и осле и не пашет в опере... ну никак... даже без ошибок...
http://freedomf.net/?chat =(
Если надо могу дать ответственный код за обновления

   
 
 автор: coloboc66   (16.06.2007 в 23:50)   письмо автору
 
   для: bronenos   (16.06.2007 в 19:14)
 

Насколько мне извстно, неименованную функцию нельзя использовать с параметрами, а вы это делаете:
this.t = function (p) {}

   
 
 автор: bronenos   (17.06.2007 в 00:15)   письмо автору
 
   для: coloboc66   (16.06.2007 в 23:50)
 

function a (p) {}
равнозначно
a = function (p) {}

функция это та же переменная
я еще ниче не делал
просто теорию выложил

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования