【发布时间】:2013-04-06 12:33:47
【问题描述】:
我的问题是一个 jQuery 菜单,它访问一个 MySql DB 并且倾向于挂起,我相信,如果按钮被点击得太快。有没有办法在加载完成之前停用所有链接?还是其他解决方案?
在 Wordpress 网站上,我有一个使用 jQuery 制作的自定义链接菜单,用于将信息从 MySQL 加载到主页区域。我昨天问了这个问题,经过更多的研究完全改变了代码,所以我在重新处理问题时删除了这个问题。 (感谢 Mike Brant 在我的 cmets 中提出的一个想法。)
菜单区域具有如下基本链接。 (来自 Menu.php)
<ul id="mainMenu">
<li id="buttonStyle"><a href="M1" id="Left-Menu-Text">Link 1</a></li>
<li id="buttonStyle"><a href="M2" id="Left-Menu-Text">Link 2</a></li>
</ul>
信息的接受 div 包含在 index.php 中(链接略高于加载区域,以适应 Wordpress 栏中的滚动。)
<a href="menuLoadAnchor" name="anchor1"></a>
/*some code*/
<div id="loadWindow"></div>
菜单的jQuery如下。
function linkScroll(aid){
var aTag = $("a[name='"+ aid +"']");
$('html,body').animate({
scrollTop: aTag.offset().top
}, 'slow' );
}
$('ul#mainMenu li a').click(function() {
var page = $(this).attr('href');
linkScroll('anchor1');
$('#loadWindow').html("<center><img src='images/loading.gif' /></center>");
$('#loadWindow').load('./wp-content/themes/themeName/menuFolder/' + page + '.php');
return false;
});
我不会有这样的问题,因为有人需要非常不耐烦才会发生这种情况。但是当它这样做时,它会留下一个打开的进程,我必须登录 SSH 才能杀死。有时我需要一次杀死很多人。非常感谢任何建议。先感谢您。
如果有帮助,我正在运行以下内容。 Wordpress 3.5.1 jQuery 1.8.3 jQuery UI 1.9 php 5.4 MySql Ver 14.14 Distrib 5.5.30 我会创建一个 jFiddle 但数据库消除了该选项。
对于那些可能发现这个并且可能遇到我昨天发现的相同问题的人 最初我让每个链接从 一个 单个文件中提取一个 div。实际上,每次点击都会发送每个数据库查询。所以我一直挂着这个。将它们分成单独的文件,它们仅在单击时将自己的查询发送到数据库。
【问题讨论】:
-
为了使其更健壮,我将添加一个名为 working 的变量并将其设置为 false。单击链接时,检查 working 是否为 false - 如果是,则将 working 设置为 true 并执行加载。加载完成后将 working 设置为 false。这样可以减少用户错误。
标签: jquery mysql wordpress menu