在Ajax导航中出现重复的Javascript文件可能会导致功能失效或页面加载速度变慢。下面是一种解决方法,可以通过判断文件是否已加载来避免重复加载。
// 存储已加载的文件路径
var loadedFiles = [];
function loadScript(file) {
// 检查文件是否已加载
if (loadedFiles.includes(file)) {
console.log(file + ' 已加载');
return;
}
// 创建script元素
var script = document.createElement('script');
script.src = file;
script.type = 'text/javascript';
// 加载完成后添加到已加载文件列表
script.onload = function() {
loadedFiles.push(file);
console.log(file + ' 加载完成');
};
// 添加到页面头部
document.head.appendChild(script);
}
// 调用示例
loadScript('path/to/script.js');
上述代码中,我们创建了一个loadedFiles
数组来存储已加载的文件路径。在loadScript
函数中,首先检查文件是否已存在于数组中,如果存在则不加载,否则创建一个script元素,并设置其src属性为要加载的文件路径。在脚本加载完成后,将文件路径添加到loadedFiles
数组中。
这样,每次加载脚本之前都会检查文件是否已加载,从而避免重复加载。