分享java带来的快乐

我喜欢java新东西

使用prototype.js 中 Ajax.Updater 类引发的问题

 

(2006-11-24 18:10:00)
  分类:AJAX
prototype.js是由Sam Stephenson写的一个javascript类库。在使用prototype.js的过程中,觉得挺好用的,它提供了一些常用函数的简写方式,对JavaScript类做了适当的扩展,最感兴趣的地方也是它的AJAX能力。
下面是我仿照 prototype.js开发者手册 用 prototype.js中的Ajax.Updater类做的一个简单的例子,当中遇到的一些问题及解决方法:
Index.jsp:
中 Ajax.Updater 类引发的问题" alt="使用prototype.js 中 Ajax.Updater 类引发的问题" src="http://static14.photo.sina.com.cn/orignal/4b62e4a951b1f0e7624fd" border=0 real_src="http://static14.photo.sina.com.cn/orignal/4b62e4a951b1f0e7624fd">
Contents.jsp:
中 Ajax.Updater 类引发的问题" alt="使用prototype.js 中 Ajax.Updater 类引发的问题" src="http://static10.photo.sina.com.cn/orignal/4b62e4a91ef1438839f59" border=0 real_src="http://static10.photo.sina.com.cn/orignal/4b62e4a91ef1438839f59">

注意到了 /* ...  */中的内容了吗? 在Index.jsp页面,在使用 new Ajax.Updater 函数时,加上了 evalScripts:true 属性,这样才会执行Content.jsp页面中的JavaScript代码。"但是值得提醒的是,像这个选项名 evalScripts 暗示的,这些脚本会被执行,但是它们不会加入到 page 脚本中",所以Content.jsp 中的函数写成了 sayHi = function(){...}这种形式(创建一个函数),而不是 function sayHi(){...} (声明一个函数) 也不能加上var 关键字 var sayHi = function(){...}(当前脚本的一个局部变量),具体的解释可参考 prototype.js开发者手册。 我最想说的是下面这个问题,在Contents.jsp 页面中我们是导入了另外一个js(import.js),并在sayHi函数中调用了import.js里的方法importFun(),运行过程中会发现被导入的import.js里的函数不能被执行,可是应该怎么办呢?? 呵呵,还好已经有人(我们公司以前的技术支持-foxty,现在在北京,我一直向他学习的)解决了,解决办法是在prototype.js的 evalScripts: function()加了一些内容,原来属性是这样的:evalScripts: function() {return this.extractScripts().map(eval);},增加内容后的代码片断如下所示:

中 Ajax.Updater 类引发的问题" alt="使用prototype.js 中 Ajax.Updater 类引发的问题" src="http://static12.photo.sina.com.cn/orignal/4b62e4a9bb5e011adcfcb" border=0 real_src="http://static12.photo.sina.com.cn/orignal/4b62e4a9bb5e011adcfcb">

相关内容可以访问 http://foxty.javaeye.com/blog/24497 这个网页查看。

posted on 2010-07-29 13:55 强强 阅读(366) 评论(0)  编辑  收藏 所属分类: web技巧


只有注册用户登录后才能发表评论。


网站导航: