IE(any)和Firefox中的内存不足错误,当尝试从父文档包含jQuery时
Out of memory error in IE(any) and Firefox when trying to include jQuery from parent document
我正在动态地将iframe加载到div中。这些 iframe 需要 jQuery 来实现其功能。为了避免将jQuery包含在每个iframe中,我只是在iframe生成器中引用了jQuery(相同的代码将在每个加载的iframe的头部中),如下所示:
var jQuery = window.parent.$; // The parent is the document that will house the iframes
var $ = jQuery;
这在Chrome中工作得很好,并且仅加载一次jQuery即可大幅提高性能。然而,Firefox 和 IE 都开始疯狂地泄漏内存(两者都在 1gb 内存使用量左右),然后抛出内存不足错误并删除脚本。
编辑:jQuery 1.7和jQueryUI 1.10.3(但是加载iframe时不使用jqUI)
请记住,jQuery保留了一个上下文,该上下文表示在选择时要在其中查找元素的范围。默认上下文是包含 jQuery 的页面的window.document
。
当引用父帧的 jQuery 全局时,上下文仍将保持父帧的window.document
,这意味着您所做的所有选择都将发生在父帧中,这几乎永远不会达到预期的效果。
根据情况(即两个帧的协议、域和端口),由于SOP
限制,这可能会导致奇怪的行为。
最好的办法是动态插入引用与子帧中的父级相同的 jQuery 资源的 <script>
标记。浏览器很可能将文件缓存在缓存中。
顺便说一下,@undefined链接的答案作为对你的问题的注释是一个糟糕的主意,因为它只允许字符串选择器正常工作,但不考虑jQuery函数可以采用的所有其他参数类型(例如,绑定到文档onload的函数)。
相关文章:
- Ajax请求文档就绪会导致jquery加载缓慢
- 在jquery文档准备好之前加载Modernizr
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- 将jQuery.js文件附加到html文档中
- 函数不't在jquery文档就绪时执行
- 使用jQuery访问元素'来自谷歌文档托管的iframe的文本
- Javascript/Css导航未显示在jquery文档上,仅在ie中准备就绪
- 如何编写单个 Jquery 函数以在文档更改和就绪事件时触发
- pipe() 和 then() 文档与 jQuery 1.8 中的现实
- 使用 JQuery 修改函数写入文档的数据
- 是否有 jQuery 事件用于何时将元素添加到文档中
- 无法将我的 html 文档连接到 jquery
- 如何使用jQuery打印文档中的表内容
- jQuery:在整个文档上触发按键功能,但不在输入和文本区域内
- 如何在JQUERY中从HTML文档中获取XML对象
- jQuery:在除一个输入文本字段之外的所有文档上激发keyup
- 没有jQuery的HTML文档分页
- 替换整个文档JQuery中的字符
- 将焦点设置为框架内的文档 (jQuery)
- 转换文档对象到XML文档JQuery