这有点开放,但我已经在这几个小时了。
我正在使用像这样的
加载jquery加载大量页面的各个部分$(‘#destination’).load(‘content.html #section-i-want’);
...将整个页面加载到客户端,然后显示我们想要的位。
麻烦的是,这个页面是GIGANTIC,一旦通过Cordova渲染到一个HTML应用程序,它就会耗尽内存。
有没有办法在没有客户端首先获得整页的情况下加载文档的一部分?我知道这不是特别有意义,但我想我会把它放在那里以防万一有任何想法。
对此的任何建议都将非常感谢!
答案 0 :(得分:1)
是。你可以把内容分成更小的html文件加载到多个部分,然后在load()的回调中加载它们:
$('#destination-top').load('content-top.html', function() {
$('#destination-middle').load('content-middle.html', function() {
$('#destination-bottom').load('content-bottom.html' );
});
});
通过将下半部分放在回调函数中,jQuery将不会在顶部完成之前加载中间部分,并且在中间部分完成之前不会加载底部。
但这不仅难以维持而且只是全面的坏形式,但它实际上无法解决您的核心问题:内存不足。为此,请了解任何延迟加载或其他创造性解决方案都无法解决此问题。相反,您需要简单地:加载更少的内容。那是你的实际问题。
编辑:我排除了#section引用,因为它不仅在语法上是错误的,而且jQuery仍然必须检索相同数量的内容,然后解析它以找到注入DOM的#section,这可能是可能消耗相当数量的内存。答案 1 :(得分:0)
这只会加载#section-i-want
:
$(‘#destination’).load(‘content.html #section-i-want’);