私の問題は、MySql DB にアクセスする jQuery メニューで、ボタンのクリックが速すぎるとハングする傾向があると思います。読み込みが完了するまですべてのリンクを無効にする方法はありますか? または別の解決策?
Wordpress サイトには、MySQL からメイン ページ領域に情報をロードするために jQuery で作成されたリンクのカスタム メニューがあります。昨日この質問をしましたが、さらに調査した結果、コードが完全に変更されたため、問題を作り直しながら質問を削除しました。(私のコメントのマイク・ブラントからのアイデアに感謝します。)
メニューエリアには、次のような基本的なリンクがあります。(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>
情報の Accepting 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 を作成したはずですが、DB はそのオプションを排除します。
これを見つけて、昨日見つけたのと同じ問題に遭遇した可能性がある人のために、元々、各リンクは1つのファイルから div をプルするようにしていました。クリックするたびに実際にすべてのDBクエリを送信しました。だから私はこれを常にぶら下げていました。それらを個々のファイルに分割し、クリックしたときに独自のクエリのみをDBに送信しました。