Ajax框架与第三方控件

Atlas、MagicAjax这样的Ajax框架使用方便,但在使用一些控件,特别是第三方控件的时候 ,会出现一些问题,特别是一些脚本(JaveScript)的效果在重画的时候丢失了。主要原因是这些控件中混合了服务器端行为和客户端(javaScript)行为,Ajax框架虽然只是重画了局部页面,但是相关的事件模型是一样的,同样引发了Postback,这就意味着对于一些通过脚本改变效果的控件来说,Postback会重画控件本身,于是会回到上次Postback前状态,客户端脚本的效果就丢失了。

最简单的解决方法就是让客户端脚本引发Postback,这样页面的视图状态就会记住当前的状态,也就是脚本的执行结果。这和我们原来的观念有一些区别。一般地说,应该尽量减少不必要的Postback以改善用户体验,但在使用Ajax的情况下,Postback带来的只是一些小的性能损失,对用户而言却是基本感觉不到的。

但是对于一些更复杂的情况,比如,重画区域后客户端的html元素id发生了变化,而脚本由于在header区域而没有相应的更改,那么,新的事件就可能因为脚本错误而出现无法引发,目前的panel式的Ajax框架基本都不能很好的处理里面的tree控件,估计就是因为这个原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值