js无刷新问题
在网上看到一段这样的代码 说可以做到无刷新然后自己改了下!
defalut.aspx
<script language="javascript">
<!--
function callXMLHttp()
{
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var data = xmlHttp.responseText;
}
}
}
xmlHttp.open("POST","defalut.aspx);
xmlHttp.send(null);
}
window.setInterval("callXMLHttp()",5000);
-->
</script>
defalut.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
Response.Write("asp.net");
}
然后运行这个页面! 页面加载的时候打印出来了 "asp.net",页面不关闭
但是我在cs文件里面把asp.net改成.net 然后保存!我不手动刷新浏览器!等了5秒以后页面的值asp.net没有改成.net。
也就是说页面根本就没有做到无刷新! 大家知道这是怎么回事吗?
如果有简单的页面无刷新的代码也可以给我参考下,谢谢了!
------解决方案--------------------。。
有缓存的。
这个就是利用AJAX的无刷新。是对的。
------解决方案--------------------首先你的代码有几处拼写错误,下是修改正确的:
function callXMLHttp()
{
var xmlHttp;
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var data = xmlHttp.responseText;
}
}
}
xmlHttp.open("POST","default.aspx");
xmlHttp.onreadystatechange = function(e){
if(xmlHttp.readyState==4){
// TODO: 在这里添加处理回调事件的逻辑
}
};
xmlHttp.send(null);
}
window.setInterval("callXMLHttp()",5000);
其次你的代码执行了异步调用,
但并没有取回调值,在上面的代码位置中添加处理异步返回数据的带代码。具体信息参考XmlHttpRequest对象的相关参数。
------解决方案--------------------JS代码:
<script language="javascript" type="text/javascript">
function callXMLHttp()
{
var xmlHttp;
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var data = xmlHttp.responseText;
document.body.innerHTML=data; }
}
}
xmlHttp.open("POST","sfsdfsdf.aspx");
xmlHttp.send(null);
}
window.setInterval("callXMLHttp()",2000);
</script>
。CS代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetNoStore();
Response.Clear();
Response.Write(DateTime.Now.ToString());
}
再运行你看一眼,绝对是无刷新可变的时间,2秒一次。我试过了
------解决方案--------------------xmlHttp.open("POST","defalut.aspx?id="+Math.Random());