我原型了多页的Web应用程序,其中一些带有严重的JavaScript load。我有一个(不是非常原始的)想法使页面布局加载一次,只改变与Ajax请求的内容。这可以做到,而且效果很好,但我有一些担忧。
该网站检查它获取的每一个请求,如果它是一个AJAX请求,它只返回内容(作为MVC 4部分视图,但这不完全是重点,这可以在任何地方完成)。否则,它会加载整个页面,布局和所有内容。 这个想法是为我正在下载的每个javascript包提供一个状态标志。该布局将有一个初始化js文件,包含页面的基本显示逻辑,如何获取内容等。
所有内容页面将检查是否加载了相关脚本,如果没有,则启动下载,并在成功事件中,设置正确的标志。一些额外的错误处理是必需的,例如,当ajax调用由于某种原因失败时。
的问题(一个或多个)
现在我担心的是,有一些 “子页面” 颇多JS。由于我必须能够在移动浏览器上工作(尽管最重js的东西只有桌面,但我们暂时忘记了这一点),它会对性能产生怎样的影响,如果我想要加载几个MB脚本内存和“永不”卸载它们(因为页面没有重新加载)。另外,如果我通过jQuery.getScript(...)函数获取它们,脚本是否会被缓存?或者我应该以另一种方式加载脚本?
同样的问题的内容。如果我从主体中删除DOM元素,请将其替换为其他元素,然后在长时间使用期间重新加载原始子页面,对内存使用情况和性能有何影响?
我真的很想让这个领域的经验丰富的人给我一些关于我的担忧的见解,然后再让我自己看起来完全愚蠢于一个无用的概念验证原型。
在此先感谢!
编辑:更改标题正确表达
编辑2:分居问题是什么,什么是上下文
这个答案(更像是消除)我的问题的一半。如何删除读取DOM元素,特别是与事件处理程序挂钩他们?他们对性能有多大的影响(即使我倾向于使用(...)函数上的jquery来避免这个问题,我会感兴趣会发生什么) – Robert
@Robert - 这取决于你想要什么样的DOM元素追加/删除以及多久执行一次。 – Venemo
@Robert更新了我的答案 – Venemo