jQuery 版本增加后,Primefaces 页面加载缓慢

问题描述 投票:0回答:1

我之前的 Primefaces 版本是 6.0。我将其升级到 Primefaces 10.0(在其网站上迁移部分的帮助下)。Clean&Build 和 Debug 中没有错误。虽然升级没有问题,但几乎50%的时间,网页加载缓慢或根本不加载。

我发现这个问题在Primefaces 6.2之后开始出现。在primefaces 6.2中,jQuery版本增加到3.2.1版本。我所做的唯一更改是通过删除 .load() 函数,根据 on('load') 更新了 js 文件。存在缓慢问题,但浏览器控制台没有错误。

然后,我通过在 Primefaces 10 中使用自定义处理程序安装了 jQuery 2.2.4,这解决了问题。所以,当jquery超过3.0.x之后,问题就开始了。但是,我不能使用 2.2.4,原因有两个。首先,当我使用 jQuery 的自定义处理程序时,不会发生服务器端部署。其次,它为安全漏洞提供了环境。

3.0.x 以上版本可能导致此问题的原因是什么,如何解决?

jquery jsf primefaces
1个回答
0
投票

@Melloware

我在 resources/default/js/menu.js 中有这段代码

jQuery(document).ready(function ($) {
    $(window).load(function () {
        setTimeout(function () {
            $(LOADER).fadeOut('slow', function () {
            });
        }, LOADER_DELAY);
});
});

我把它改为:

jQuery(document).ready(function ($) {
    $(window).on("load",function () {
        setTimeout(function () {
            $(LOADER).fadeOut('slow', function () {
            });
        }, LOADER_DELAY);
});
});

现在,通过使用 jquery-migrate 插件,我收到了警告 on("load") 事件在 load 事件之后开始

我将代码分成:

jQuery(document).ready(function ($) {
    
});

$(window).on("load",function () {
        setTimeout(function () {
            $(LOADER).fadeOut('slow', function () {
            });
        }, LOADER_DELAY);
});

它现在加载页面,但这是好的方法吗?

© www.soinside.com 2019 - 2024. All rights reserved.