关于浏览器打开页面无法获取数据的问题,100分相送,分不多盼回 关于浏览器打开页面无法获取数据的问题,打开页面得不到数据,但把该页面关闭重开浏览器又是好的。不知道是什么原因造成的以及解决的方案。。请各位高手解决。多谢了。苦恼N天了。网页是用asp.net与AJAX 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 浏览器问题。重做下系统,或是换个其他浏览器 如 firefox ajax的调试是个麻烦事,楼主的描述太抽象,无法判断。 可能是 ajax去取数据的时候,由于数据量大或者服务器慢,JS卡死。 ALERT()把可能的信息都输出出来.多用这个吧 先确定问题所在. 乱猜不是办法. 我遇到过的,当时我们的AJAX用的比较简单是自己封装的,出现这问题的时候,改善了下返回速度就解决了,(把返回结果变小或者用缓存之类)。具体问题具体分析吧 在出现这种情况的时候查看一下系统资源的占用,如果是IE占用大估计是JS有问题。如果是IIS服务大,则说明是后台程序有问题,多是数据库查询有问题,用MSSQL的事件探查器看一看运行的SQL语句是不是正常。 不知道楼主用的什么AJAX.之前我一般用TRELERIK的套件,很漂亮,性能也高.后来,想自己作,于是仔细研究了下MS的ASPAJAX套件. 发现MS的处理相当牛X.自己拔代码拔出来.经过改造,实现真正的节约资源(普通的AJAX,其实页面其他东西都要执行一下,只是传输可以减少一部分,并且给用户的体验改变,要做到精确的执行部分代码,最好还是采用 AJAX + WEBSERVICE,自己作了个组件)MS的大概思路是 为SERVICE作个脚本代理, 然后当触发页面事件后,调用脚本代理,代理内部还有并发,超时,错误,恢复数据等处理机制,保证页面不会卡死,不会失去响应. 要用AJAX 最好是学会吧页面肢解化,元素化. 这样一个统一的SERVICE可以实现通用处理.以后的页面和功能都可以简单制作出来. 你看看是不是ajax异步调用的问题,我曾经碰到过这样的问题,用ajax调用后台代码时参数值还没有获取到,这是方法会执行,但是由于参数不对,所以获取不到数据,但是如果是跟踪程序,就没有问题,但是正常运行就不行!所以必须跟踪程序包括js代码!!一看就找到问题所在了!! 主要调用AJAX代码function createXMLHttp(){ var http_request; if(window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType("text/xml"); } } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { window.alert("can't create XMLHttpRequest object."); return null; } return http_request;}//a路径,aa执行函数,x绑定对象,p发送形式,sendxml post的数据function _sendx(a,aa,x,p,sendXML){ var ab=createXMLHttp(); if((!ab)&&!aa){ var ll = new Image(); ll.src=a; ll.onload = function(){aa(x,ab.responseText);}; }else{ //stTime1=(new Date()).getTime(); ab.open((p?p:"GET"),a,true);//(p?true:false) if(aa){ //ab.status == 200 ab.onreadystatechange=function(){if(ab.readyState==4){ var v = ab.responseText; //stTime2=(new Date()).getTime(); //window.status=""+v.length+"? ??"+(stTime2-stTime1)+""; aa(x,v); }}; if(p) { ab.setRequestHeader("Method", "POST " + a + " HTTP/1.1"); //ab.setRequestHeader("Charset","GB2312"); ab.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8 ; "); } } ab.send((sendXML?sendXML:null)); }} ; function createXMLHttp() { var http_request; if(window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType("text/xml"); } } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { window.alert("can't create XMLHttpRequest object."); return null; } return http_request; } //a路径,aa执行函数,x绑定对象,p发送形式,sendxml post的数据 function _sendx(a,aa,x,p,sendXML){ var ab=createXMLHttp(); if((!ab)&&!aa){ var ll = new Image(); ll.src=a; ll.onload = function(){aa(x,ab.responseText);}; }else{ //stTime1=(new Date()).getTime(); ab.open((p?p:"GET"),a,true);//(p?true:false) if(aa){ //ab.status == 200 ab.onreadystatechange=function(){if(ab.readyState==4){ var v = ab.responseText; //stTime2=(new Date()).getTime(); //window.status=""+v.length+"? ??"+(stTime2-stTime1)+""; aa(x,v); }}; if(p) { ab.setRequestHeader("Method", "POST " + a + " HTTP/1.1"); //ab.setRequestHeader("Charset","GB2312"); ab.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8 ; "); } } ab.send((sendXML?sendXML:null)); } } ; 显然是速度问题打开页面时你的ajax开始工作由于ajax请求的负荷很大,导致浏览器假死 经过测试,将AJAX调用数据注销,问题依然存在。。请各位大虾们救命啊 Asp.net 怎么获取的App.config配置文件里的数据库连接信息 动态生成gridview后,如何给动态生成的按钮列设置事件? 如何实现全站搜索? 新人的疑问,通用的查询、更新、删除方法。 出来诈到。。。问个问题。 实际项目中数据库连接字符串 如何有效避免二个以上用户同时操作同一数据表造成的冲突? 想问一下回复功能怎么做? 我在 asp.net 和 C# 编写的 Web 页面中,我想调用外部应用程序如同VB 中的Shell 如何解决。 如何实现日期和AM/PM的格式??(04/01/2003 PM) 求GB8567-2006 标准规范的模板 ajax基础问题
多用这个吧 先确定问题所在. 乱猜不是办法.
我遇到过的,当时我们的AJAX用的比较简单是自己封装的,出现这问题的时候,改善了下返回速度就解决了,(把返回结果变小或者用缓存之类)。具体问题具体分析吧
如果是IIS服务大,则说明是后台程序有问题,多是数据库查询有问题,用MSSQL的事件探查器看一看运行的SQL语句是不是正常。
之前我一般用TRELERIK的套件,很漂亮,性能也高.
后来,想自己作,于是仔细研究了下MS的ASPAJAX套件. 发现MS的处理相当牛X.自己拔代码拔出来.经过改造,实现真正的节约资源(普通的AJAX,其实页面其他东西都要执行一下,只是传输可以减少一部分,并且给用户的体验改变,要做到精确的执行部分代码,最好还是采用 AJAX + WEBSERVICE,自己作了个组件)MS的大概思路是 为SERVICE作个脚本代理, 然后当触发页面事件后,调用脚本代理,代理内部还有并发,超时,错误,恢复数据等处理机制,保证页面不会卡死,不会失去响应.
function createXMLHttp()
{
var http_request;
if(window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
window.alert("can't create XMLHttpRequest object.");
return null;
}
return http_request;
}
//a路径,aa执行函数,x绑定对象,p发送形式,sendxml post的数据
function _sendx(a,aa,x,p,sendXML){
var ab=createXMLHttp();
if((!ab)&&!aa){
var ll = new Image();
ll.src=a;
ll.onload = function(){aa(x,ab.responseText);}; }else{
//stTime1=(new Date()).getTime();
ab.open((p?p:"GET"),a,true);//(p?true:false)
if(aa){
//ab.status == 200
ab.onreadystatechange=function(){if(ab.readyState==4){
var v = ab.responseText;
//stTime2=(new Date()).getTime();
//window.status=""+v.length+"? ??"+(stTime2-stTime1)+"";
aa(x,v);
}};
if(p)
{
ab.setRequestHeader("Method", "POST " + a + " HTTP/1.1");
//ab.setRequestHeader("Charset","GB2312");
ab.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8 ; ");
}
}
ab.send((sendXML?sendXML:null));
}
} ;
function createXMLHttp()
{
var http_request;
if(window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
window.alert("can't create XMLHttpRequest object.");
return null;
}
return http_request;
}
//a路径,aa执行函数,x绑定对象,p发送形式,sendxml post的数据
function _sendx(a,aa,x,p,sendXML){
var ab=createXMLHttp();
if((!ab)&&!aa){
var ll = new Image();
ll.src=a;
ll.onload = function(){aa(x,ab.responseText);}; }else{
//stTime1=(new Date()).getTime();
ab.open((p?p:"GET"),a,true);//(p?true:false)
if(aa){
//ab.status == 200
ab.onreadystatechange=function(){if(ab.readyState==4){
var v = ab.responseText;
//stTime2=(new Date()).getTime();
//window.status=""+v.length+"? ??"+(stTime2-stTime1)+"";
aa(x,v);
}};
if(p)
{
ab.setRequestHeader("Method", "POST " + a + " HTTP/1.1");
//ab.setRequestHeader("Charset","GB2312");
ab.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8 ; ");
}
}
ab.send((sendXML?sendXML:null));
}
} ;
由于ajax请求的负荷很大,导致浏览器假死