1

我有一个 jsp 页面,上面有单独的模块或小部件。为了提高页面的整体加载时间,我正在考虑并行获取那些独立的模块。我有 2 个策略:

1:JQUERY AJAX

function getSimilars(){
    $('#similars').load('getSimilars.jsp');
}
function getActivity(){
    $('#activity').load('getActivity.jsp');
}

$(document).ready(function(){
    var funcList = ['getSimilars','getActivity'];
        $.each(funcList, function(i,v){
            window[v]();
    })
});

2:静态包含

<div id="similars">
    <%@include file="getSimilars.jsp" %>
</div>
<div id="activity">
    <%@include file="getActivity.jsp" %>
</div>

我知道1从浏览器运行,而2在编译时运行。但是其中哪些会使我的页面加载速度更快?

编辑: 虽然 jquery 方法并行运行这两个函数,但我认为第二种方法使那些 2 includes串行运行。我对吗 ?

4

1 回答 1

2

选项 1> 通过 ajax 加载页面将使部分页面加载速度更快,但其余 2 个页面的加载时间在页面调用期间每次都会有所不同,这取决于网络带宽。

选项 2> 我们从 Java EE 规范中知道,所有 jsp 页面第一次编译为 servlet,然后不需要进一步编译,生成的 .class 文件直接在以后对页面的所有调用中执行。

所以这里不会有任何进一步的时间依赖性来加载页面。

现在,如果应用程序同时需要整页,则应选择选项 2 。

然而

如果可以使用延迟加载体验的应用程序页面加载来获得更好的用户体验,则应选择选项 1 。

于 2013-03-11T17:48:51.620 回答