结合使用 Ajax 和 WebSphere Portal
2009-11-04 00:00:00 来源:WEB开发网响应处理通常涉及到解析返回的 XML(或其他内容)和使用此数据来更新 DOM 树。
图 2 显示了如何汇总各个部分。
图 2. Ajax 通信事件模型
门户特定的注意事项
在门户应用程序中实现 Ajax 时,您应注意几个问题。
全局 JavaScript 变量
通常,在门户应用程序中,避免使用 JavaScript 中的全局变量,因为门户会将几个 Portlet 聚合到单个页面中。全局 JavaScript 变量的命名空间(如清单 4 所示)是一个好的做法,因为您可以保证变量名是唯一的,即使在同一页面上部署相同的 Portlet 两次。
清单 4. 命名空间 JavaScript 变量。// Global XMLHttpRequest variable
var <portlet:namespace />xhrFieldsRequest;
如果您使用 Ajax 工具包,则抽象层将解决任何命名冲突。
使用 ID 属性
通常在 Ajax 中使用 ID 属性,以快速更新页面的某个部分。因为任何 HTML 标记中的 ID 属性对于 DOM 都是全局的,所以您需要确保它们是唯一的。如果您有重复的 ID 属性,那么结果是不可预知的,但是,通常这不是您希望的结果,并且问题非常难以确定。
为了安全起见,请对所有 ID 属性设置名称空间,即使此操作会使您的代码像在清单 5 中看到的一样难于阅读。
清单 5. 安全地对 ID 属性设置命名空间。<h1 id="<portlet:namespace />header">Hello</h1>
<script type="text/javascript">
var x = document.getElementByID
("<portlet:namespace/>header");
x.innerHtml = "GOODBYE!";
</script>
更多精彩
赞助商链接