zoukankan      html  css  js  c++  java
  • Atlas与页面缓存冲突造成报错问题

     Atlas会与页面缓存冲突,造成Unkown error问题。

    Atlas与页面缓存冲突造成报错问题

     左直拳

    近日在网页应用了Atlas,不料部署到服务器后,却频频出错,提示:Unkown error。既然是出错,又不说是什么错误,这不为难人吗?更奇怪的是,并不是所有的时候都出错,基本上是同样的操作,10次会有12次没问题。

    本来在本地开发的时候就出过错,只不过频率很小,因为是系统不稳定,就没有在意。

    是什么原因呢?

    由结果和调试来看,错误发生在提交后页面回传的时候。数据已经在后台处理了,只是重新装载页面出了问题。

    开始时以为是母版页引发了错误。因为在该页面上应用了母版页。但将母版页的内容和内容页的内容合成一个页面后,问题依旧。

    在网上查了一下资料,说UpdatePanel的原理是将整个页面提交,数据处理完后回传,然后有选择性地进行局部更新。古怪的是,听说它将所有的JS都放在了一起。这样有时侯会造成一些问题,比如注释语句<!--会将别的函数也注释掉了。不知道跟我这个错误有没有关系?因为我用了很多自己写的用户控件,里面有许多比较复杂的JS脚本。

    于是一个个地试。结果试到一个很简单的控件,就发现它会导致错误,没用它就没事。奇怪啊,这个控件是一行JS脚本都没有啊!

    发现是因为它用到了缓存:<%@ OutputCache  Duration="600" VaryByParam="None"%>将缓存声明去掉,果然正常了。

    不过如果仅仅因为要用AJAX就去掉缓存,就太可惜了。我努力去尝试在程序里根据条件来控制缓存,却没有成功。缓存的确也可以在代码里访问,问题只是声明性的,运行过程中就无法控制了。

    Atlas只是微软的Ajax1.0,还是beta,估计以后会好一点吧。不过还是很方便的,控件的形式,在页面上拖来拖去,再配置一下就可以了,不用写什么东西。

  • 相关阅读:
    [nodejs] 静态资源服务器
    [nodejs]fs 读数据流和写数据流
    [nodejs]fs文件模块-练习
    [nodejs] fs文件模块
    利用SqlServer触发器自动更新表updatetime字段值
    python发送邮件至多人
    mybatis-plus获取Timestamp类型,无法获取变量null
    1.iOS第一个简单APP
    Mysql浅析
    Nginx编译安装Lua模块
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258330.html
Copyright © 2011-2022 走看看