我正在尝试设置我的网站,以便通过 javascript 加载主要区域中的内容(某些页面需要一段时间才能呈现)。但是,在使用 jQuery.load()、jQuery.getScript 和 jQuery.ajax() 时,我遇到了一些逻辑问题。
我需要能够通过 getScript 加载某些 javascript 文件,以便我可以在加载的内容中使用这些函数等。
- index.php - 显示的主文件(也包含#loading)
- js/script.js - 包含加载代码的文件
- js/*.js - 加载后我需要能够在 #maincontent 中使用的几个 javascript 文件
- load.php - 正在加载到#maincontent 的文件
脚本.js:
$(document).ready(function() {
$('#loading').fadeIn('fast');
$('#maincontent').load('load.php', function() {
$('#loading').fadeOut('fast');
$('#maincontent').fadeIn('slow');
});
$('#navigation li a').click(function() {
$('#maincontent').fadeOut('fast');
$.getScript('js/jquery.contextMenu-1.01.js');
$.getScript('js/jquery-1.5.1.min.js');
$.getScript('js/jquery-ui-1.8.12.custom.min.js');
$.getScript('js/jquery.qtip-2.0.0.min.js');
$.getScript('js/ajax.js');
$.ajax({
method: 'get',
url: 'load.php',
data: 'page=' + $(this).attr('rel'),
beforeSend: function() {
$('#loading').fadeIn('fast');
},
complete: function() {
$('#loading').fadeOut('fast');
},
success: function(html) {
$('#maincontent').fadeIn('slow');
$('#maincontent').html(html);
}
});
});
$.getScript('js/jquery.contextMenu-1.01.js');
$.getScript('js/jquery-1.5.1.min.js');
$.getScript('js/jquery-ui-1.8.12.custom.min.js');
$.getScript('js/jquery.qtip-2.0.0.min.js');
$.getScript('js/ajax.js');
});
如您所见,我尝试在没有任何 URL 参数和来自用户的任何交互的情况下首先加载 load.php。尽管 load.php 每次都正确加载,但对于 javascript 代码却不能这么说。有时它可以工作,有时我必须刷新页面几次才能获得干净的控制台(没有错误)。
控制台中的错误提示我在 load.php 中使用之前没有正确加载 js 代码。如果 load.php 需要一段时间(使用 PHP sleep(5) 函数测试),则尤其如此。
如果我需要澄清任何事情,请告诉我:)