我快崩溃了 大家帮帮我

时间:2021-08-18 04:04:38
ajax.js
------------------------------------------------------------------
function createXMLHttpRequest()
{ var xmlHttp=null;
  if(window.ActiveXObject) 
   { 
     xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); 
   } 
   else if(window.XMLHttpRequest) 
   { 
     xmlHttp = new XMLHttpRequest(); 
   } 
   return xmlHttp;


function funadd() 

  
  ajax=createXMLHttpRequest(); 
  var url = "for.php";
  var f = document.myform;
  var u_id = f.uid.value;
  var u_Content = f.replyContent.value;
  var poststr = "uid="+u_id+"&u_Content="+u_Content+"&t="+Math.random()
  ajax.onreadystatechange = addChange;
  ajax.open("POST", url, true);
  ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  ajax.setRequestHeader("Cache-Control","no-cache"); 
  ajax.setRequestHeader("If-Modified-Since","0");
  ajax.send(poststr);

}

function addChange() 
{
  if (ajax.readyState == 4) 
{
           if(ajax.status == 200||ajax.status == 0) 
              { 
                 document.getElementById('msg').innerHTML = ajax.responseText;
     } 
     else
                {
alert("Sorry,服务器繁忙,请刷新页面稍后再试!");
       }
 }
}
/--------------------------------------------------------------------------------
for.php

<?php
header('Content-Type:text/html;charset=utf-8');
header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
....................................

?>

问题:ie下插入数据有时成功 有时失败 特别是前两次基本失败 只有刷新才能显示数据 其它浏览器没有问题 这明显是ie的缓存问题 搞了一星期多都搞不定 精神接近崩溃 就差砸电脑了 望赐教.谢谢!

12 个解决方案

#1


var ajax=null;
//这里漏了

function funadd()  
{  
   
  ajax=createXMLHttpRequest();  
  var url = "for.php";
   var f = document.myform;
   var u_id = f.uid.value;
   var u_Content = f.replyContent.value;
   var poststr = "uid="+u_id+"&u_Content="+u_Content+"&t="+Math.random()
   ajax.onreadystatechange = addChange;
   ajax.open("POST", url, true);
   ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   ajax.setRequestHeader("Cache-Control","no-cache");  
  ajax.setRequestHeader("If-Modified-Since","0");
   ajax.send(poststr);

}

#2


用jquery 吧 一句代码的事情...

#3


用jquery 吧 一句代码的事情...
------------------------------------------------------
貌似不是答案 想想也有道理 我很纠结啊

#4


js太麻烦,Jquery一句代码搞定

#5


Math.random()*1000000
请求URL后面的随机数改成这个

#6


jq....回复内容太短了

#7


parseInt(Math.random()*1000000)

#8


Math.random()*1000000
加上这个也不行 谢谢各位的热心回答 现在呈现一个规律 第一次插入数据页面不能显示 第二次插入数据显示第一次的数据 第三次插入数据直接把第二次的数据覆盖掉了 从第四次插入数据开始显示正常
下午看了看jquery 实在不行只能用改改看 不过放弃ajax太可惜了 这个刚摸着一点门道

#9


很遗憾!
虽然放弃有时是必要的
但也就放弃了到达“*王国”的可能性!

#10


版主说*,*值几个钱啊,按我的理解,你精通一门还不如熟练多门技术,艺多不压身啊,jquery是一门


必修的技术,按楼主和版主的意思,貌似选择jquery是不得已而为之的, 我快崩溃了 大家帮帮我

#11


var url = "for.php";
随机参数加到url后边;

#12


引用 10 楼 xjl756425616 的回复:
版主说*,*值几个钱啊,按我的理解,你精通一门还不如熟练多门技术,艺多不压身啊,jquery是一门


必修的技术,按楼主和版主的意思,貌似选择jquery是不得已而为之的,



no, no, no, 基于当时发明js的人思想上受限制, 所以设计出这么烂的语法, 
如果是今天, 设计js的人知道jquery如此写起来是这么简单, 肯定后悔当初为什么自己设计js这门语言时要把语法弄得这么复杂。

语言这种东西是人为的, 基于设计者的意识, 但可以写起来很优雅, 也可以写起来很烂, 像js中的xml, 当初设计这个没考虑到今天的ajax, 所以没封装好, 新手一遇到这问题就崩。。。

所以建议楼主用jquery....





#1


var ajax=null;
//这里漏了

function funadd()  
{  
   
  ajax=createXMLHttpRequest();  
  var url = "for.php";
   var f = document.myform;
   var u_id = f.uid.value;
   var u_Content = f.replyContent.value;
   var poststr = "uid="+u_id+"&u_Content="+u_Content+"&t="+Math.random()
   ajax.onreadystatechange = addChange;
   ajax.open("POST", url, true);
   ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   ajax.setRequestHeader("Cache-Control","no-cache");  
  ajax.setRequestHeader("If-Modified-Since","0");
   ajax.send(poststr);

}

#2


用jquery 吧 一句代码的事情...

#3


用jquery 吧 一句代码的事情...
------------------------------------------------------
貌似不是答案 想想也有道理 我很纠结啊

#4


js太麻烦,Jquery一句代码搞定

#5


Math.random()*1000000
请求URL后面的随机数改成这个

#6


jq....回复内容太短了

#7


parseInt(Math.random()*1000000)

#8


Math.random()*1000000
加上这个也不行 谢谢各位的热心回答 现在呈现一个规律 第一次插入数据页面不能显示 第二次插入数据显示第一次的数据 第三次插入数据直接把第二次的数据覆盖掉了 从第四次插入数据开始显示正常
下午看了看jquery 实在不行只能用改改看 不过放弃ajax太可惜了 这个刚摸着一点门道

#9


很遗憾!
虽然放弃有时是必要的
但也就放弃了到达“*王国”的可能性!

#10


版主说*,*值几个钱啊,按我的理解,你精通一门还不如熟练多门技术,艺多不压身啊,jquery是一门


必修的技术,按楼主和版主的意思,貌似选择jquery是不得已而为之的, 我快崩溃了 大家帮帮我

#11


var url = "for.php";
随机参数加到url后边;

#12


引用 10 楼 xjl756425616 的回复:
版主说*,*值几个钱啊,按我的理解,你精通一门还不如熟练多门技术,艺多不压身啊,jquery是一门


必修的技术,按楼主和版主的意思,貌似选择jquery是不得已而为之的,



no, no, no, 基于当时发明js的人思想上受限制, 所以设计出这么烂的语法, 
如果是今天, 设计js的人知道jquery如此写起来是这么简单, 肯定后悔当初为什么自己设计js这门语言时要把语法弄得这么复杂。

语言这种东西是人为的, 基于设计者的意识, 但可以写起来很优雅, 也可以写起来很烂, 像js中的xml, 当初设计这个没考虑到今天的ajax, 所以没封装好, 新手一遇到这问题就崩。。。

所以建议楼主用jquery....