关于Ajax的页面停滞问题

问题描述

请问高手们:小弟在开发网页时,如带ajax功能的级联菜单问题,当一个菜单内容比较多要加载时,菜单控件和页面都会像死了一样,ajax应该是异步加载数据的啊,怎么会像是同步加载数据一样,非要等内容全部加载完毕后页面才能动,不知道是什么原因,哪位知道,不胜感谢!

解决方案

解决方案二:
将脚本show出来看看
解决方案三:
前台的:<%@Pagelanguage="c#"Inherits="AjaxTest.main"CodeFile="main.aspx.cs"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><title>AjaxTest</title><metaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1"><metaname="CODE_LANGUAGE"Content="C#"><metaname="vs_defaultClientScript"content="JavaScript"><metaname="vs_targetSchema"content="http://schemas.microsoft.com/intellisense/ie5"><scripttype="text/javascript"language="javascript">/*取得数据主函数*/functiongetData(){varresponse=null;if(typeof(AjaxTest.main)=="undefined"){alert("未定义异步对象!");returnfalse;}else{FrezeOrUnFrezePage(true);AjaxTest.main.DataTableReturn(getDataTable_Callback);FrezeOrUnFrezePage(false);}}//填充数据functiongetDataTable_Callback(response){varobjDrpTwo=document.getElementById("drpTwo");ClearOptions(objDrpTwo);if(response.error!=null){alert(response.error);}if(response!=null&&response.value!=null){varindex=0;varlength=0;varobjTable=response.value;length=objTable.Rows.length;varnewOption=null;varvalue=null;vartext=null;for(index=0;index<length;index++){value=objTable.Rows[index].a;text=objTable.Rows[index].b;varnewOption=newOption(text,value);objDrpTwo.options.add(newOption);}}}//清楚数据functionClearOptions(objDrpTwo){varindex=0;varlength=0;length=objDrpTwo.options.length;for(index=0;index<length;index++){objDrpTwo.options.remove(0);}}//functionFrezeOrUnFrezePage(flag){varindex=0;varlength=0;length=document.all.length;for(index=0;index<length;index++){document.all[index].disabled=flag;}}</script></HEAD><bodyid="objBody"><formid="Form1"method="post"runat="server"><asp:DropDownListid="drpOne"runat="server"><asp:ListItemValue="1">Item1</asp:ListItem><asp:ListItemValue="2">Item2</asp:ListItem><asp:ListItemValue="3">Item3</asp:ListItem></asp:DropDownList><asp:DropDownListid="drpTwo"runat="server"></asp:DropDownList><INPUTtype="button"value="后台取得数据"onclick="javascript:getData()"id="btnCGetDate"><INPUTid="btnCFrezePage"type="button"value="页面冻结"onclick="javascript:FrezeOrUnFrezePage(true);"><INPUTid="btnCUnFrezePage"type="button"value="页面解冻"onclick="javascript:FrezeOrUnFrezePage(false);"></form></body></HTML>

后台的:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;////usingAjax;namespaceAjaxTest{///<summary>///Summarydescriptionformain.///</summary>publicpartialclassmain:System.Web.UI.Page{protectedvoidPage_Load(objectsender,System.EventArgse){//Putusercodetoinitializethepagehereif(!Page.IsPostBack){AjaxPro.Utility.RegisterTypeForAjax(typeof(main));this.drpOne.Attributes.Add("onchange","javascript:returngetData();");this.drpOne.Attributes.Add("onclick","javascript:returngetData();");this.drpOne.Attributes.Add("change","javascript:returngetData();");this.drpOne.Attributes.Add("click","javascript:returngetData();");}}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:ThiscallisrequiredbytheASP.NETWebFormDesigner.//InitializeComponent();base.OnInit(e);}///<summary>///RequiredmethodforDesignersupport-donotmodify///thecontentsofthismethodwiththecodeeditor.///</summary>privatevoidInitializeComponent(){}#endregion///<summary>///测试是否真的是异步的///</summary>///<returns></returns>[AjaxPro.AjaxMethod()]publicSystem.Data.DataTableDataTableReturn(){System.Data.DataTabledt=newSystem.Data.DataTable();dt.Columns.Add("a");dt.Columns.Add("b");intindex=0;intlen=1000;for(index=0;index<len;index++){System.Data.DataRowdr=dt.NewRow();dr["a"]=index;dr["b"]=System.DateTime.Now.ToString();dt.Rows.Add(dr);}returndt;}}}

解决方案四:
我用的JSON的Ajax控件
解决方案五:
不要神化异步调用,它也是依靠网络速度,同时也会受数据量影响的,这些不管哪种机制都不能解决,需要人为优化,或通过语句或建立索引....
解决方案六:
通常会用一个div来显示一个正在加载的图片告诉用户数据正在加载中
解决方案七:
AjaxPro.Utility.RegisterTypeForAjax(typeof(main));这个东西你应该写在ispostback外面我使用ajaxpro也会遇到这样的问题。我目前感觉认为是js代码的问题,
解决方案八:
遇到过,没解决.up
解决方案九:
看来是有待高人解决了!如果能像多线程那样处理就好了!
解决方案十:
效率问题只能靠SQL优化。毕竟也是从数据库中取得数据。数据量多当然会显示很慢的!

时间: 2024-07-28 21:02:19

关于Ajax的页面停滞问题的相关文章

ajax的页面提示处理

ajax|页面 ajax的页面提示处理                                        现象:由于现有系统必须在b/s下实现实时数据显示及tip显示,当鼠标移到某一<div>时,系统采用ajax的方式向后台取数据.在取数据的过程中常常发现系统进程停顿的情况,主要表现为:所有系统进程停顿,鼠标不起作用. 原因: 原有系统采用了同步的方式进行提交,代码如下: var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP

ci检测是ajax还是页面post提交数据的方法_php实例

本文实例讲述了ci检测是ajax还是页面post提交数据的方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 因为项目需要我们希望知道提交数据来源是由ajax提交过来的数据还是由页面的post提交过来的数据从而进行不同层面上的处理. 二.解决方法: 在php中解决方法如下: 如果是ajax请求,以下表达式的值为真 复制代码 代码如下: $_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest" 就是一个PHP的环境

插件-ajax html页面之间的提交与接收

问题描述 ajax html页面之间的提交与接收 使用了lhgdialog.min.js插件,需要将父页面的一个参数传到子页面,两个页面都是html的 ,想到了用ajax传,但是一直不成功,不知道是没发出去还是没接收到,急求代码,c币有限但已经是全部了,谢谢 解决方案 可以通过 HTML 的URL 带参数 解决方案二: 如果你的子页面是iframe加载的,在iframe中通过parent得到父页的window作用域,直接调用父页的变量什么的就行,前提是没有跨域 跨域了可以使用url传递参数 解决

ajax的异步请求-用AJAX实现页面部分刷新,无法实现

问题描述 用AJAX实现页面部分刷新,无法实现 function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

代码-ajax实现页面部分刷新,高分求助

问题描述 ajax实现页面部分刷新,高分求助 效果如下: 怎么实现复选框选中的数据不进行刷新,而剩下的在我点击抽取的时候重新获取. 页面代码如下: 请写出代码,万分感谢,小弟对于ajax方面真心不会 解决方案 1.便利所有checkbox,获得未选中的.把value拼接成字符串,或json数组 2.$.get()(字符串传值)或$.post()(json传值) ajax异步发送到后台,返回一个json. 3.便利未选中的checkbox,parent()获得tr对象,把后台发送的json数据转化

jquery ajax-使用$.ajax()后,页面直接卡住,而且内存暴涨是怎么回事?

问题描述 使用$.ajax()后,页面直接卡住,而且内存暴涨是怎么回事? 代码在这 <script type='text/javascript'> $(document).ready(function() { var usernametag=0; var passwordtag=0; var nametag=0; var emailtag=0; var teltag=0; var tag=0; $('#username').blur(function(){ var username = $('

用ajax实现页面某个标签刷新

问题描述 用ajax实现页面某个标签刷新 我用ajax向java后台发送一个请求后,,得到了用户的昵称,并存到了session中 前台举个例子是这样的: <div id="user">昵称:{sessionScope.userName} </div> 我不想通过js修改#user的文本内容来显示昵称..我想通过刷新#user这个div来显示出昵称,,请问我该怎么办? 解决方案 document.getElementById('user').innerHTML=a

用AJAX实现页面登陆以及注册用户名验证的简单实例_AJAX相关

AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX 是一种用于创建快速动态网页的技术.其核心是 JavaScript 对象 XMLHttpRequest.该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术.简而言之,XMLHttpRequest使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户. 通过在后台与

PHP Ajax实现页面无刷新发表评论_php技巧

大家都有在网站发表评论的经历,传统的发表过程无非是:发表->提交页面表单->等待刷新页面,这样在网络比较拥挤的时候,往往需要漫长的等待,今天介绍用PHP+Ajax实现页面无刷新发表评论,希望对初学ajax的PHPer有所帮助.    那么首先,我们需要一个基本的ajax开发框架,文件ajax.js就包含了这个框架,代码如下: var http_request=false;  function send_request(url){//初始化,指定处理函数,发送请求的函数    http_requ