【发布时间】:2012-10-02 12:47:01
【问题描述】:
我有一个 Web 应用程序,它由一个 index.html 文件组成,其中包括一个 <iframe>。 index.html 文件在<iframe> 中加载不同的页面。这些页面中的每一个都有自己独立的 Javascript 和 CSS。
到目前为止一切正常。
我现在正在考虑使用 Ajax 调用将这些页面加载到 index.html 中的 <div> 中,而不是将它们加载到 <iframe> 中。我做了一些测试,这是可能的,但有一个问题让我担心,因为我是这项技术的新手,我想也许这里的一些专家可以分享知识。
问题 #1:
当将这些页面直接加载到 index.html 文件中的 <div> 时,新页面将加载到与 index.html 本身相同的 DOM 中。因此,元素类和页面 ID 之间可能存在冲突,并且在页面中托管 index.html 例如 $("#foo").hide(); 实际上会在 index.html 文件和页面中隐藏类为 foo 的元素。有什么办法,我可以将页面代码放在某种沙箱中,防止它影响index.html?
问题 #2:
当删除一个页面(可能用另一个页面替换它)时,它的代码的一部分仍然会留在内存中(as mentioned here)。有什么办法可以防止这种影响吗?当然,对第一个问题的肯定回答将涵盖这个问题 因为如果页面在沙箱中运行,卸载页面也应该卸载它的 javascript 代码。
问题 #3:
该页面是一个完整的 HTML 文件,具有自己的 <head>、<body> 和 <title>元素。这意味着它也会受到来自托管index.html 文件的CCS 规则的影响。如何预防这些负面影响?
无需重新加载整个页面的分页导航系统似乎是许多现代网站的常见交互机制。如何在没有这些副作用的情况下动态加载页面(没有<iframe>)?
【问题讨论】:
标签: javascript