`
stta04
  • 浏览: 114842 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Ajax 长时间无响应问题

阅读更多

最近做索引,在action处理中,如果注释掉更新索引的方法,Ajax则可以正常响应,但是取消注释,则后台处理完成了,数据库的数据更新,索引的文档更新都完成后,页面却无任何反应,刚开始以为是ajax响应问题,所以网上找到这篇文章,不过,后来发现我的项目中并不是由于这个问题的所在,故不知该文是否是解决该问题的最终方案,但还是先收藏该文,以备后用。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

XML/HTML代码

/*

varhttp_request=false;

functionsend_request(url,method,postStr){//初始化,指定处理函数,发送请求的函数

http_request=false;

//开始初始化XMLHttpRequest对象

if(window.XMLHttpRequest){//Mozilla浏览器

http_request=newXMLHttpRequest();

if(http_request.overrideMimeType){//设置MIME类别

http_request.overrideMimeType("text/xml");

}

}

elseif(window.ActiveXObject){//IE浏览器

try{

http_request=newActiveXObject("Msxml2.XMLHttp");

}catch(e){

try{

http_request=newActiveXobject("Microsoft.XMLHttp");

}catch(e){}

}

}

if(!http_request){//异常,创建对象实例失败

window.alert("创建XMLHttp对象失败!");

returnfalse;

}

//确定发送请求方式,URL,及是否同步执行下段代码

http_request.open(method,url,true);

//不加下边这段POST不成功具体做啥的不知道

http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

if(method=="GET"){

http_request.send(null);

}else{

http_request.send(postStr);

}

}

*/

varhttp_request;

functioncreateXMLHttpRequest(){

if(window.ActiveXObject){

http_request=newActiveXObject("Microsoft.XMLHTTP");

}elseif(window.XMLHttpRequest){

http_request=newXMLHttpRequest();

}

}

functionsend_request(url,method,postStr){

createXMLHttpRequest();

//http_request.setRequestHeader("If-Modified-Since","0");

http_request.open(method,url,true);

http_request.setRequestHeader("If-Modified-Since","0");

if(method=="GET"){

http_request.send(null);

}else{

http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

http_request.send(postStr);

}

}

//处理返回信息的函数

functionprocessrequest(){

//alert(http_request.readyState);

//alert(reobj);

if(http_request.readyState==4){//判断对象状态

if(http_request.status==200){//信息已成功返回,开始处理信息

document.getElementById(reobj).innerHTML=http_request.responseText;

}

else{//页面不正常

alert(http_request.readyState);

alert("您所请求的页面不正常!");

}

}

}

functiondopage(obj,url){

document.getElementById(obj).innerHTML="正在读取数据...";

//alert(url);

send_request(url,"GET");

reobj=obj;

http_request.onreadystatechange=processrequest;

//http_request.onreadystatechange=alert(http_request.readyState);

}

//下拉菜单跳转选择静态第一页

functionGoToWhere(s,p)

{

varobj='result';

vard=s.options[s.selectedIndex].value;

surl="detail_list.php?status=2&pro_id="+p+"type="+d;

document.getElementById(obj).innerHTML="正在读取数据...";

send_request(surl,"GET");

reobj=obj;

//alert(http_request.readyState);

http_request.onreadystatechange=processrequest;

}

//post方法验证用户名与密码是否正确

functiongetCheck(){

varres=checkfrom();

if(res){

vardiscuzuser=document.getElementById("discuzuser").value;

if(discuzuser){

document.form2.submit();

}

else{

varusername=document.getElementById("username").value;

varpassword=document.getElementById("password").value;

varpostStr="username="+username+"password="+password;

//ajaxpost默认是UTF8去那边转码了

send_request("http://dp.cnmo.com/checkuser.php","POST",postStr);

http_request.onreadystatechange=function(){

if(http_request.readyState==4){

if(http_request.status==200){

varhttp_result2=http_request.responseText;

if(http_result2){

document.getElementById("checkuser").style.display="";

document.getElementById("checkuser").innerHTML=http_result2;

}else{

document.form2.submit();

}

}

}

}

}

}//endifres

}

关键一句

XML/HTML代码

http_request.setRequestHeader("If-Modified-Since","0");

分享到:
评论

相关推荐

    php-Ajax长轮询

    此外,如果并发用户数量大,服务器可能需要管理大量长时间未结束的请求,这可能会影响服务器性能。 **应用场景** 长轮询特别适合那些需要实时更新但不需要连续双向通信的场景,如聊天室、股票行情、在线投票等。在...

    web即时聊天(ajax长轮询方式实现)

    【标题】:“Web即时聊天(Ajax长轮询方式实现)” 在Web开发中,实现即时聊天功能是一项常见的需求,这通常涉及到服务器与客户端之间实时的数据交换。Ajax(Asynchronous JavaScript and XML)技术结合长轮询策略...

    ajax显示详细时间

    **Ajax显示详细时间**是一种网页开发技术,它允许在不刷新整个页面的情况下更新部分网页内容。这个技术基于JavaScript,XMLHttpRequest对象(简称XHR)以及DOM(文档对象模型)的组合,实现了与服务器端的异步通信。...

    Ajax无刷新实现定时更新数据

    为了解决这一问题,Ajax(Asynchronous JavaScript and XML)技术应运而生,它允许网页在不重新加载整个页面的情况下异步地与服务器交换数据并更新部分网页内容,从而实现了网页的无刷新更新。 #### 一、理解Ajax无...

    asp+ajax做的无刷新文件上传带进度条

    在Web开发中,用户经常需要上传文件,传统的文件上传方式在上传大文件时会导致页面长时间无响应,用户体验不佳。为了解决这个问题,开发者通常会采用Ajax(Asynchronous JavaScript and XML)技术来实现无刷新的文件...

    ExtJs Ajax 同步问题

    6. **服务器端问题**:有时问题可能出在服务器端,如响应时间过长,或者返回的数据格式不正确,这也会导致看起来像是同步问题。 7. **性能优化**:如果发现大量同步请求导致页面卡顿,考虑优化请求,例如合并请求、...

    php非常经典的网页聊天程序ajax无刷新

    总结:这个“php非常经典的网页聊天程序ajax无刷新”是一个基于PHP和Ajax技术实现的简单、易部署的网页聊天应用,它利用Ajax实现了无刷新的聊天体验,减少了用户等待时间,提升了交互性。通过合理的数据库设计和安全...

    jQuery的Ajax时无响应数据的解决方法

    在使用jQuery的Ajax方法进行异步数据交互时,有时可能会遇到数据无响应的情况,这通常是由于请求配置不正确或服务器端处理存在问题导致的。本文将深入解析如何解决jQuery的Ajax时无响应数据的问题,以及涉及的相关...

    PHP+Ajax实现在线聊天长轮询

    在这个过程中,客户端发送请求给服务器,请求保持开放直到服务器有新数据可发送,或者达到预设的超时时间。一旦服务器有新消息,就立即响应客户端,关闭请求,并由客户端重新发起新的请求。这种方式保证了数据的实时...

    基于Ajax的无刷新聊天室.rar

    **基于Ajax的无刷新聊天室** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换数据并局部更新页面,为用户提供更快速、流畅的...

    Ajax实战——深入理解AJAX

    这导致了页面加载时间长,用户感觉延迟大。而Ajax则通过局部更新,减少了页面刷新,使得应用更像桌面应用那样流畅和响应迅速。 1.1.1 比较用户体验 Ajax应用能提供丰富的用户交互,例如即时反馈、无刷新更新、鼠标...

    解决js ajax同步请求造成浏览器假死的问题

    通过这种方式,页面的UI线程不会被长时间阻塞,用户界面依然能够响应用户的操作。 总结一下,解决js ajax同步请求造成浏览器假死的问题的关键在于理解浏览器单线程的特性及其在执行同步请求时会阻塞UI线程的行为。...

    ajax相关的jar包

    3. **后台处理**:允许服务器进行长时间处理,而不会阻塞用户界面。 Ajax的应用场景广泛,例如: 1. **表单验证**:用户输入时实时检查有效性,无需提交即可反馈错误信息。 2. **动态加载内容**:如无限滚动页面,...

    ajax 基本原理 ajax 基本原理

    为了解决这些问题,Ajax技术应运而生。 #### 二、Ajax概述 Ajax(Asynchronous JavaScript and XML)是一种用于创建更快、更动态的Web应用程序的技术。尽管名称中包含XML,但Ajax实际上可以使用任何数据格式,如...

    Ajax 汽车销售系统

    在"Ajax汽车销售系统"项目中,它被广泛应用于提高用户体验,使得用户在浏览、搜索或进行其他交互操作时,页面加载更为流畅,减少了等待时间,提升了整体系统的响应速度。 在汽车销售系统中,Ajax的核心应用可能包括...

    Ajax技术在矿用考勤系统中的应用

    Ajax技术通过XmlHttpEngineRequest对象向服务器发出异步请求,然后从服务器获得数据,再通过JavaScript操作DOM来更新页面,避免了用户因提交form而长时间等待服务器应答的情况。实际应用表明,采用Ajax技术设计的矿用...

    Ajax应用开发综合案例

    3. 用户体验:长时间无响应可能让用户感到困扰,使用进度条或提示信息改善体验。 4. 回退按钮和历史记录:Ajax请求不会改变URL,导致回退按钮失效。可使用`history.pushState()`或`replaceState()`管理浏览器历史。 ...

    AJax详细解释AJax详细解释

    1. 避免阻塞UI:长时间运行的AJAX请求可能导致用户界面无响应,需合理安排任务执行。 2. SEO考虑:由于AJAX加载的内容不在原始HTML中,搜索引擎可能无法抓取,因此需要对SEO友好的方案,如使用服务器端渲染。 3. ...

Global site tag (gtag.js) - Google Analytics