16

我有一个相当大的应用程序,在管理前端,加载页面需要几秒钟,因为它必须在显示任何内容之前将所有页面浏览量加载到对象中。解释系统如何工作有点复杂,但我的其他一些问题非常详细地解释了系统。他们所说的与当前系统之间的主要区别在于,当客户首次查看页面时,客户前端不再将所有页面浏览量加载到对象中 - 它只是将页面浏览量添加到数据库中并在未同步列表中创建一个对象。 . 简单地说,当客户浏览一个页面时,它不再将所有的浏览量加载到对象中;但管理前端仍然如此。

我最近一直在开发客户前端的一些管理工具,因此如果管理员单击目录中某个项目的描述,那么右侧列将显示所选项目的统计信息和可用操作。为此,(通过$('action-container').load(bla bla bla);)加载到右侧列的页面必须遍历所有页面浏览量 - 这最终意味着所有页面浏览量都已加载到对象中(如果它们尚未加载)。由于某种原因,这加载得非常快。速度上的差异在我的开发站点上只有一秒钟,但实时站点有数千次浏览量,所以差异很大......

所以我的问题是:为什么管理前端加载速度如此之慢而使用$(bla).load(bla);速度如此之快?我的意思是无论 jQuery 使用什么方法,浏览器不能也使用这种方法并超快地加载页面吗?显然不像现在有人会那样做 - 但我很想知道为什么差异如此之大......它只是我的系统还是浏览器获取页面和 jQuery 获取速度之间存在重大差异页面?其他人是否也有同样的差异?

4

3 回答 3

11

我的意思是无论 jQuery 使用什么方法,浏览器不能也使用这种方法并超快地加载页面吗?

jQuery 只能使用浏览器提供的(DOM API)。而已。jQuery 没有带来任何额外的东西,也没有任何魔术。

它基本上只是该 API 之上的一个层,因此,它实际上比直接使用 API 慢。

...这已经获得了如此多的赞成票,这表明其他人在使用 jQuery 时会体验到同样的速度提升。

你收到了赞成票,因为你称赞 jQuery 速度快。我认为这些支持者都不愿意指出 jQuery不能以某种方式比浏览器更快的事实证明了这一点。

如果你批评过 jQuery,我猜你会被一些用户否决。

于 2011-01-01T14:42:07.080 回答
8

Facebook 在这方面做了很多研究(通过 Javascript 部分加载页面,而不是一次全部加载)。

请参阅此处解释的“BigPipe”技术:http: //www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919

于 2011-01-01T11:19:46.420 回答
2

没有看到一些代码,很难推测,但我怀疑如果您要在 Firefox/Firebug 或 IE/Fiddler 中运行测试,当您直接浏览到每个“部分页面”时,您会看到许多 http 连接被打开。当您使用 jQuery 加载每个“部分页面”时,您只加载“部分页面”内容,而不是任何 CSS、JS 或图像文件。

于 2011-01-01T10:23:27.670 回答