Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проблемы с AJAX и IE / 22 сообщений из 22, страница 1 из 1
23.04.2007, 12:57
    #34480016
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Хотя эта тема и не из этого раздела(есть элементы PHP), но упоминание по ajax здесь чаще... Хотел сделать голосование на своем сайте и у меня возникла проблема, которая посавила меня в тупик... Книга ajax в действии ни к чему не привела... В опере все ОК. В IE происходит какое-то залипание, и пока не перегрузиш страницу, ничего не происходит... Пожалуйста, помогите... Уже месяц мучаюсь с этой проблемой...
...
Рейтинг: 0 / 0
23.04.2007, 13:15
    #34480089
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Книга эта вообще супер. проблему немешало бы описать
...
Рейтинг: 0 / 0
23.04.2007, 13:44
    #34480200
@RuSHA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
trevojnuiХотя эта тема и не из этого раздела(есть элементы PHP), но упоминание по ajax здесь чаще... Хотел сделать голосование на своем сайте и у меня возникла проблема, которая посавила меня в тупик... Книга ajax в действии ни к чему не привела... В опере все ОК. В IE происходит какое-то залипание, и пока не перегрузиш страницу, ничего не происходит... Пожалуйста, помогите... Уже месяц мучаюсь с этой проблемой...

файл index.php

Код: 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.
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.
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="javascript" type="text/javascript">
//------------------------------------
function createXmlHttpRequestObject(){
var xmlHttp;
try{
        xmlHttp=new XMLHttpRequest();
}
catch(e){
        try{
                xmlHttp=new ActiveXObject("MSXML2.XMLHTTP");
        }
        catch(e){
                try{
                        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){}
        }
}
if(!xmlHttp){
        alert("Не удалось создать объект XMLHttpRequest");
}
return xmlHttp;
}

//--------------------------------------------
function getResponseText(xmlHttp){
// возвращает текст отклика сервера на xmlHttpRequest
var txt=false;
// проверка готовности результата
if(xmlHttp.readyState ==  4 ){
        if (xmlHttp.status ==  200 ){
                // получить XML ответ сервера
                txt=xmlHttp.responseText;
        } else {
                if (xmlHttp.status ==  404 ){
                        alert("Request URL does not exist");
                } else {
                        alert("Error: status code is " + xmlHttp.status);
                }
        }
}
return txt;
}

xmlHttp=createXmlHttpRequestObject();
xmlHttp.onreadystatechange=Receive;

//------------------------------------
var myid;
function Sender(id,ball,in_put){
///////////////////////////////////////////////////////////
//             Заного объявляем переменную
//////////////////////////////////////////////////////////
xmlHttp=createXmlHttpRequestObject();
xmlHttp.onreadystatechange=Receive;
myid=in_put;
xmlHttp.open("GET","response.php?id="+id+"&ball="+ball,true);
xmlHttp.send(null);
}
//------------------------------------
function Receive(){
var txt=getResponseText(xmlHttp); if(!txt) return;
var pp= document.getElementById(myid);
pp.innerHTML=txt;
}
///////////////////////////////////////////////////////////
//             Не понял зачем стока функций если можно всё через одну ;)
//////////////////////////////////////////////////////////
        function golosovat(index){
                for( var i= 1 ; i< 11 ; i++){
                        if(document.getElementById('smile'+index+i).checked==true){
                                Sender(index,i,"myid"+index);return;
                        }
                }

        }

</script>
</head>

<body>
<?for($j= 1 ;$j< 5 ;$j++){?>
                <p id="myid<?=$j;?>"><form>
                                        <i>Оцените анекдот по десятибальной шкале</i><br>
                                        <input type="radio" id="smile<?=$j;?>1" name="smile" value="1"> 1 
                                        <input type="radio" id="smile<?=$j;?>2" name="smile" value="2"> 2 
                                        <input type="radio" id="smile<?=$j;?>3" name="smile" value="3"> 3 
                                        <input type="radio" id="smile<?=$j;?>4" name="smile" value="4"> 4 
                                        <input type="radio" id="smile<?=$j;?>5" name="smile" value="5" checked> 5 
                                        <input type="radio" id="smile<?=$j;?>6" name="smile" value="6"> 6 
                                        <input type="radio" id="smile<?=$j;?>7" name="smile" value="7"> 7 
                                        <input type="radio" id="smile<?=$j;?>8" name="smile" value="8"> 8 
                                        <input type="radio" id="smile<?=$j;?>9" name="smile" value="9"> 9 
                                        <input type="radio" id="smile<?=$j;?>10" name="smile" value="10"> 10 
                                        <input type="Button" onclick="golosovat(<?=$j;?>);" value="Голосовать">
                                </form>

</p>
<?}?>

</body>
</html>
...
Рейтинг: 0 / 0
23.04.2007, 14:53
    #34480534
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Вот спосибо... Все получилось... Весьма благодарен..
...
Рейтинг: 0 / 0
23.04.2007, 18:07
    #34481472
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Можно также спросить по счетчику... Так как инет не у всех быстро пашет, то можно нажать несколько раз кнопку проголосовать... Попробовал document.getElementById("myid<?=$j;?>").value="Спасибо, ваше мнение учтено!!!", но оказывается такого метода нет... И как же это реализовать??? Заранее благодарен!!!! На счет книги "AJAX в действии", я так и не понял, что имелось ввиду в строке var laoder=new net.ContentLoader('mydata.xml',parseMyData); Что имелось под parseMyData (функция обратного вызова, соответствующая успешной загрузки документа ??????)... Так и не понял что это.... Если есть возможность, нельзя ли показать на примере, представленном выше???? С этого места я перестал понимать книгу... Увы....
...
Рейтинг: 0 / 0
23.04.2007, 18:45
    #34481586
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
trevojnui
var laoder=new net.ContentLoader('mydata.xml',parseMyData); Что имелось под parseMyData (функция обратного вызова, соответствующая успешной загрузки документа ??????)...

Да, все так вы поняли
...
Рейтинг: 0 / 0
24.04.2007, 19:32
    #34484702
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Alex_BBB
Да, все так вы поняли
Нет, это была выдержка из книги... А вот как это можно приспособить к моей проблеме...??? И вообще, где можно узнать методы XMLHttpRequest на русском языке???
...
Рейтинг: 0 / 0
24.04.2007, 20:50
    #34484801
StepLg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
из книг :) скинуть ссылки на озон?
мне понравилась Ajax для профессионалов
...
Рейтинг: 0 / 0
29.04.2007, 10:26
    #34496763
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Пример взят из книги "AJAX в действии" под редакцией Дейв Крейна, Эрико Паскарелло от 2006

Буду признателен, если покажете где тут ошибка и почему не работает пример... Вроде бы все правильно... Хотелось бы применить его в своем голосовании...

<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
var net=new Object();
net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADER=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;

net.ContentLoader=function(url,onload,onerror){
this.url=url;
this.req=null;
this.onload=onload;
this.onerror=(onerror) ? onerror : this.defaultError;
this.loadXMLDoc(url);
}

net.ContentLoader.prototype={
loadXML:function(url){
if(window.XMLHttpRequest){
this.req=new XMLHttpRequest();
}else if (window.ActiveXObject){
this.req=new ActiveXObject("Microsoft.XMLHTTP");
}
if(this.req){
try{
var loader=this;
this.req.onreadystatechange=function(){
loader.onReadyState.call(loader);
}
this.req.open('GET',url,true);
this.req.send(null);
}catch(err){
this.onerror.call(this);
}
}
},
onReadyState:function(){
var req=this.req;
var ready=req.readyState;
if(ready==net.READY_STATE_COMPLETE){
var httpStatus=req.status;
if(httpStatus==200 || httpStatus==0){
this.onload.call(this);
}else{
this.onerror.call(this);
}
}
},
defaultError:function(){
alert("error fetching data!"
+"\n\nreadyState:"+this.req.readyState
+"\n\nstatus: "+this.req.status
+"\nheaders:"+this.req.getAllResponseHeaders());
}
}

</script>
</head>

<body>
<script type="text/javascript">
var loader = new net.ContentLoader('data.txt',myCallBack());

function myCallBack(){
alert(
this.url
+" loaded! Here's the content:\n\n"
+this.req.responseText
);}
</script>


</body>
</html>


И выдает ошибку, хотя в корне у мя создан документ data.txt с надписью... Почему то выдает ошибку:

line: 70
char: 2
Error: 'this.req.responseText' is null or not an object
code: 0

Пример взят из книги "AJAX в действии" под редакцией Дейв Крейна, Эрико Паскарелло от 2006

Буду признателен, если покажете где тут ошибка и почему не работает пример... Вроде бы все правильно... Хотелось бы применить его в своем голосовании...
...
Рейтинг: 0 / 0
29.04.2007, 12:16
    #34496820
WEB_bobby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
А в 7-мом IE тоже при использовании Ajax - запрос потверждения безопасности вылетает?У кого седьмой IE - признавайтесь!
...
Рейтинг: 0 / 0
06.05.2007, 09:15
    #34507475
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Мда... И тишина... И что, никто не знает как это сделать???
...
Рейтинг: 0 / 0
06.05.2007, 09:30
    #34507481
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
trevojnui
Код: plaintext
1.
2.
3.
4.
5.
function myCallBack(){
	alert(
		this.url
		+" loaded! Here's the content:\n\n"
		+this.req.responseText
	);}


конечно он null. Откуда в myCallBack(куда указывает this) req

в функцию передаётся объект ConetntLoader
авторthis.onload.call(this);

Код: plaintext
1.
2.
3.
4.
5.
function myCallBack(loader){
	alert(
		this.url
		+" loaded! Here's the content:\n\n"
		+loader.req.responseText
	);}
...
Рейтинг: 0 / 0
06.05.2007, 09:54
    #34507493
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
мда... Все равно не работает... А разве myCallBack не вызывается после создания объекта net???
...
Рейтинг: 0 / 0
06.05.2007, 09:54
    #34507494
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
LINUXER
конечно он null. Откуда в myCallBack(куда указывает this) req

открыл книгу, там написано как работает call

но может ИЕ рассуждает как я =)
...
Рейтинг: 0 / 0
06.05.2007, 09:57
    #34507495
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
trevojnuiмда... Все равно не работает... А разве myCallBack не вызывается после создания объекта net???
кстати, this.req не null?
какой у него status?
...
Рейтинг: 0 / 0
06.05.2007, 10:03
    #34507498
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
LINUXERоткрыл книгу, там написано как работает call

но может ИЕ рассуждает как я =)

function.call()-это метод данного объекта. Первый параметр function.call(), представляет собой контекст функции, и в теле функции на него можно ссылаться с помощью ключевого слова this.
Ничего не понял... Читаю изо дня в день... Гляжу книгу, вижу фигу... Печально...
...
Рейтинг: 0 / 0
06.05.2007, 10:08
    #34507501
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
LINUXER trevojnuiмда... Все равно не работает... А разве myCallBack не вызывается после создания объекта net???
кстати, this.req не null?
какой у него status?

А в чем разница написания???
function myCallBack(loader){
alert(this.url+" loaded! Here's the content:\n\n"+loader.req.responseText);}

</script>

Если по твоему, то IE молчит, а если так, то пишет req есть null или не является объектом
...
Рейтинг: 0 / 0
06.05.2007, 10:42
    #34507511
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
trevojnui
function.call()-это метод данного объекта. Первый параметр function.call(), представляет собой контекст функции, и в теле функции на него можно ссылаться с помощью ключевого слова this.
Ничего не понял... Читаю изо дня в день... Гляжу книгу, вижу фигу... Печально...
Возможно вначале стоит почитать про основы объектов, прототипов JS, про замыкания, или найти пример попроще.
Вобщем там объясняется, как и почему приведённый код работает
trevojnuiА в чем разница написания???
Если по твоему, то IE молчит, а если так, то пишет req есть null или не является объектом

Разница из-за того что я не понимал как работает call(). Мой вариант неправильный

попробуй это для отладки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function myCallBack(){
  try{
    alert(this)
    alert(this.url)
    alert(this.req)
    alert(this.req.status)
    alert(this.req.readyState)
    alert(this.req.responseText)
  }catch(e){alert(e.message)}
}
...
Рейтинг: 0 / 0
06.05.2007, 17:01
    #34507835
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
попробуй это для отладки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function myCallBack(){
  try{
    alert(this)
    alert(this.url)
    alert(this.req)
    alert(this.req.status)
    alert(this.req.readyState)
    alert(this.req.responseText)
  }catch(e){alert(e.message)}
}
[/quot]
Увы... и ентот не правильный... Правда в книге было написано "Написать обработчик обратного вызова, передоваемый объекту ContentLoader, очень легко." Видать код с подковыркой...
...
Рейтинг: 0 / 0
08.05.2007, 16:28
    #34513316
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
И еще вопрос по браузеру IE. Упорно вылетает ошибка такого плана... "
Системная ошибка -1072896748.
Код 0
"
И что бы это значило? Код выполняется полностью, все работает... Только вот эта маленькая неприятность...
...
Рейтинг: 0 / 0
28.05.2007, 01:38
    #34554159
trevojnui
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
Что это за загадочная "e" в }catch(e){alert(e.message)}. Постоянно встречаю, но что это и для чего?
...
Рейтинг: 0 / 0
28.05.2007, 02:10
    #34554172
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с AJAX и IE
trevojnuiЧто это за загадочная "e" в }catch(e){alert(e.message)}. Постоянно встречаю, но что это и для чего?
Это называется обработка исключений
e - исключение/exception.
try{a=1/0;}catch(e){a=0;alert("произошла ошибка "+e+", в a присвоен 0");}
оно ловится и обрабатывается
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проблемы с AJAX и IE / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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