我之前的 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 以上版本可能导致此问题的原因是什么,如何解决?
@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);
});
它现在加载页面,但这是好的方法吗?