不是我的错,也不是Atlas的!

    在我的网站中菜单部分调用功能页面是在客户端脚本中完成的,菜单项被点击后,将功能的ID传递给一个专门负责菜单调用的ASPX,在这里只是生成菜单调用的Javascript脚本,然后通过AJAx的方式,调用页面中的一个方法再返回实际的URL然后用navigate方法跳转到实际的页面。之所以这样处理有几点考虑:

  1. 不直接显示URL和参数,虽然谈不上安全,可感觉好点儿:)
  2. 在服务端首先分析菜单项调用参数,改成Session变量的形式提供。
  3. 在等待服务器处理和跳转页面载入之前还可以显示一个等待提示,扰乱一下试听:-)
    以前这个功能是使用Ajax.net实现的,现在改为用Atlas,在客户端调用WebService,可是修改完成后运行下试试,报错了:XXX没有定义!那里错了呢?浏览WebService一切正常,查看Altas的例子说明,方法很简单,没有应该出错的地方啊,几经试验也没有头绪,我这个爆脾气的!
    吃完午饭看了看新闻,到园子里随便看了看,看到一篇关于JavaScript装载顺序的文章〔没有记住那位兄弟的,对不住了〕,忽然灵机一动,我这脚本是用RegisterStartupScript在页面中直接运行的,是不是Atlas还没有初始化完成?!马上改为函数,然后window.setTimeout 设置延时1秒钟,运行成功了!爽啊。想想这也不像话啊,改为document.attachEvent('onload',doCmd); 再试,又报这个错了!看来不那么简单啊。没关系知道原因好办了,赶紧去Atlas.net查资料......
    终于发现了Sys.Application,这是个全局的变量,只要你引用了Atlas就存在,并且有个load事件,看来就是它了,马上改:Sys.Application.load.add(doCmd); 再运行,搞定!
posted @ 2006-05-02 01:57  柒零壹  阅读(477)  评论(2编辑  收藏  举报