2011-08-08 73 views
0

我想学习一些ajax。我试图让Ajax异步读取文本文件。不能得到简单的ajax例子工作

继承人我的代码:

<html> 
<head> 
    <script type="text/javascript"> 
    var http = false; 

    if(navigator.appName == "Microsoft Internet Explorer") { 
     http = new ActiveXObject("Microsoft.XMLHTTP"); 
    } else { 
     http = new XMLHttpRequest(); 
    } 

    function replace() { 
     http.open("GET", "tester.txt", true); 
     http.onreadystatechange=function() { 
     if(http.readyState == 4) { 
      document.getElementById('foo').innerHTML = http.responseText; 
     } 
     } 
     http.send(null); 
    } 
    </script> 
</head> 
<body> 

<p><a href="javascript:replace()">Replace Text</a></p> 

<div id="foo" style="background: #CFEBFF; border: 2px solid #0090F4; padding: 4px"> 
    Hello, world! 
</div> 

</body> 
</html> 

当过我点击链接我放弃了那里。它只是显示一个空白。然而我在同一个目录下的文本文件(称为tester.txt)包含一些信息。请帮助?谢谢。

+0

从fiddler或firebug(或类似的)开始看到请求和响应。 –

+0

奇怪,我把它用在Firefox上,但它并没有在我的谷歌浏览器上工作。我有Ubuntu的Linux 10.10。也许这是问题? – de1337ed

回答

2

除非你真的致力于学习如何做到这一点很难,我真的会为此推荐jQuery。它使用a great library for AJAX requests来处理所有奇怪的浏览器差异。如果你正在寻找这个做硬盘的方式,好了,好运来你

$.get('tester.txt').success(function (receivedData) { 
    //do something with receivedData 
}); 

:为了让你想打电话,这将是一样简单。你可以看看jQuery implements it对于一些线索7442到7980.

+0

嗯。我不知道jquery是异步的。问题:我试图进一步扩展这个简单的在线聊天程序。 jquery可以查询mysql数据库的聊天信息吗?什么是最好的方式去做这件事?谢谢。 – de1337ed

+0

这听起来像是一个单独的问题。你可能想用某种持久连接的客户端 - 服务器系统,使用[WebSockets](http://en.wikipedia.org/wiki/WebSocket)或[长轮询](http://stackoverflow.com/questions/5428450 /如何-不-的NodeJS柄持久的连接,而无需-的WebSockets/5429752#5429752)。在使用jQuery的客户端,需要将AJAX调用放入正确的循环中以调用服务器以查找新的聊天信息。 –