在重页中应该避免使用ASP.NET AJAX吗?

时间:2009-09-28 04:48:49

标签: performance exception asp.net-ajax

我只是为某些用户收到了一些js错误,而且只是在使用相当多的ASP.NET AJAX的页面上偶尔出现一些错误。

该页面还进行了一些强烈的SQL查询和一些字符串操作,以突出显示搜索结果中的文本。

这可能是性能的结果吗?在要求苛刻的情况下使用ASP.NET AJAX是否总是安全的,还是我应该寻求其他AJAX技术?

(顺便说一下我有时看到的错误):

消息:Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误。从服务器返回的状态代码是:12031

消息:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息。此错误的常见原因是通过调用Response.Write(),响应过滤器,HttpModules或服务器跟踪来修改响应。 详细信息:在''。

附近解析时出错

2 个答案:

答案 0 :(得分:1)

  

这个特殊的例外是非常的   常见的,可以由任何一个引起   以下内容:

     

<强> 1。调用Response.Write():         通过直接调用Response.Write(),您可以绕过正常情况   ASP.NET的渲染机制   控制。你写的那些东西都要去了   直接向客户提供   进一步处理(好吧,主要是...)。   这意味着UpdatePanel不能   以特殊格式编码数据。

     

<强> 2。响应过滤器:         与Response.Write()类似,响应过滤器可以更改   以这样的方式渲染   UpdatePanel不会知道。

     

第3。的HttpModules:         同样,与Response.Write()和响应过滤器相同的交易。

     

<强> 4。服务器跟踪已启用:         如果我要再次实现跟踪,我会采用不同的方式。   使用有效写出跟踪   Response.Write(),以及如此混乱   我们用于的特殊格式   UpdatePanel中。

     

<强> 5。调用Server.Transfer():         不幸的是,没有办法检测到Server.Transfer()   调用。这意味着UpdatePanel   什么时候做不了什么聪明的事   有人调用Server.Transfer()。该   回复发送给客户的回复是   从页面到的HTML标记   你调了自从它的HTML和   不是特殊的格式,它不可能   解析,你得到错误。

完成帖子: ASP.NET AJAX and Sys.Webforms.PageRequestManagerServerErrorException

您可以使用Visual Studio Debug功能获取导致错误的代码。我不太了解,但也许它可以提供帮助,Firebug也可以帮助您查看服务器响应和您提交给服务器的数据。

这是一个视频,您可以在其中查看如何使用Firebug来调试Ajax。 See how I used Firebug to learn jQuery

但是我不认为在重载页面中应该避免使用Asp.NET Ajax。那实际上是Ajax代表什么?我的意思是它也减轻了服务器发送小块页面的速度,而不是再次请求整个页面。

答案 1 :(得分:1)

众所周知,ASP.NET AJAX不是性能最强的方法,但我认为这是为了换取实现它的简单方法。

我知道您不能在更新面板中执行任何Response.Writes。这将导致您的第二个错误。