我有一个相当大的应用程序,在管理员前端,需要几秒钟来加载页面,因为它必须在显示任何内容之前加载到对象中的所有页面浏览量。解释系统如何工作有点复杂,但我的一些其他问题非常详细地解释了系统。他们所说的与当前系统之间的主要区别在于,当客户首次查看页面时,客户前端不再将所有综合浏览量加载到对象中 - 它只是将页面视图添加到数据库并在非同步列表中创建对象。简而言之,当客户查看页面时,它不再将所有综合浏览量加载到对象中;但管理员前端仍然这样做。
我最近在客户前端处理过一些管理工具,因此如果管理员单击目录中项目的描述,则右侧列将显示所选项目的统计信息和可用操作。为此,将(通过$('action-container').load(bla bla bla);
)加载到右侧列的页面必须遍历所有的综合浏览量 - 这最终意味着所有的综合浏览量都会加载到对象中(如果尚未加入)。出于某种原因,这种加载真的非常快。速度的差异只是我的开发网站上的第二个,但实际网站有成千上万的网页浏览量,所以差异很大......
所以我的问题是:为什么在使用$(bla).load(bla);
时,管理员前端加载速度如此之快?我的意思是jQuery使用的方法,浏览器也不能使用这种方法并加载页面超快速?显然不是因为现在有人会这样做 - 但我很想知道为什么差异如此之大......它只是我的系统还是浏览器获取页面和jQuery之间的速度有很大差异页面?其他人是否会遇到同样的差异?
答案 0 :(得分:11)
我的意思是jQuery使用的方法,浏览器也不能使用这种方法并加载页面超快速?
jQuery只提供浏览器提供的内容(DOM API)。而已。 jQuery没有为表格带来任何额外的东西,也没有任何魔术技巧。
它基本上只是该API的一个层,因此,它实际上比你直接使用API时更慢。
...这已经获得了如此多的投票,这表明其他人在使用jQuery时会遇到相同的速度提升。
你收到了赞成票,因为你称赞jQuery是快速的。我认为这可以通过以下事实得到证明:这些赞助商都没有指出jQuery 不能以某种方式比浏览器更快。
如果你批评了jQuery,我猜你会被一些用户贬低。
答案 1 :(得分:8)
Facebook已经对这个领域进行了大量研究(通过Javascript加载部分页面,而不是一次性加载)。
请参阅此处解释的“BigPipe”技术:http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
答案 2 :(得分:2)
没有看到一些代码,很难推测,但我怀疑如果你在Firefox / Firebug或IE / Fiddler中运行你的测试,你会看到当你直接浏览每个“part-page”时会打开很多http连接。当您使用jQuery加载每个“part-page”时,您只加载“part-page”内容而不是任何CSS,JS或图像文件。