Ajax与服务器通信问题

wwsAmigo 2011-08-07 04:11:18
服务器上有一程序不停更新一个xml文档,我用javascript的xmlHttp写了个读取xml文档的web程序,想要实现的是在客户端的浏览器上能实时同步更新数据。
但是浏览器将下载的xml缓存了,我在论坛上看到在请求时候加上随机数的方法。此法确实解决了问题,但是由于更新速度很快,大约1秒钟5次,3分钟就下载了1M的缓存文件,让我十分不爽。
请问有什么办法让客户端每次都去服务器上下载最新的xml,而不去存取缓存。
或者是不是不用xml来做数据传输,有什么其他的好的方案吗?
现有相关代码如下:
var xmlHttp;

function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHttp");
//alert("您使用的是IE浏览器,xmlHttp对象创建完成");
}
else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
//alert("您使用的是firefox或者opera等浏览器,xmlHttp对象创建完成");
}
else
{
alert("xmlHttp fault");
}
}

function ReadText(){
var number = rand(1000000);
var url="location.xml?"+number;//在请求时加入随机数
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);

}

...全文
83 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwsAmigo 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 konghulu 的回复:]
要不你就在前台操作,随机数存到一个变量里,读完就把缓存的那个文件给删除了。
[/Quote]

js不能删除本地文件啊~~
wwsAmigo 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 konghulu 的回复:]
那个更新xml文档的程序是你写的吗?
暴露一个json返回类型的服务给前台ajax调用不可以?
[/Quote]

我后台只是一个C++程序,用json比较麻烦的吧?
zhangliang_88 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 konghulu 的回复:]
要不你就在前台操作,随机数存到一个变量里,读完就把缓存的那个文件给删除了。
[/Quote]
清除缓存~
潮起潮落 2011-08-08
  • 打赏
  • 举报
回复
要不你就在前台操作,随机数存到一个变量里,读完就把缓存的那个文件给删除了。
潮起潮落 2011-08-08
  • 打赏
  • 举报
回复
那个更新xml文档的程序是你写的吗?
暴露一个json返回类型的服务给前台ajax调用不可以?
wwsAmigo 2011-08-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 licip 的回复:]
加时间参数我觉得是最好的。
[/Quote]

我1秒刷新5次,一次1k的文件,一个小时就快20M垃圾了。。。
请教一般做这种实时的通信还带页面刷新要用什么方法?
Go 旅城通票 2011-08-07
  • 打赏
  • 举报
回复
没有办法。。可以使用服务器推技术,一直打开连接,不过可能会出现其他问题

自己搜索下服务器推

建议最好的就是加时间戳
licip 2011-08-07
  • 打赏
  • 举报
回复
加时间参数我觉得是最好的。
wwsAmigo 2011-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mubeibei 的回复:]
var url="location.xml?"+new Date();//在请求时加入随机数
[/Quote]
我说了,这个方法我用了。
但是造成在本地缓存文件数量巨大。
我想有没有办法禁用缓存?
我在head中加入了
<meta http-equiv="Cache-Control" contect="no-cache">
<meta http-equiv="Expires" contect="Mon, 26 Jul 1997 05:00:00 GMT">
<meta http-equiv="Pragma" contect="no-cache">
但是貌似不起作用。。。
MuBeiBei 2011-08-07
  • 打赏
  • 举报
回复

var url="location.xml?"+new Date();//在请求时加入随机数

52,798

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧