0

jQuery バージョン jquery-1.8.2.js および jquery-ui.js v1.9.0 を使用しています。index.php を含む php ページがあります。index.php を開くと正常に読み込まれますが、タブを切り替えるとコンテンツの読み込みに時間がかかります。firebug jquery-1.8.2.js で 4.84 秒、jquery-ui で 8.32 秒、ajax 呼び出しで 659ms かかりました。jquery の読み込みに十分な時間がかかっているようで、index.php に次のコードがある理由がわかりません。

$(function() {
        $( "#tabs" ).tabs({
            beforeLoad: function( event, ui ) {
                ui.jqXHR.error(function() {
                    ui.panel.html(
                        "Couldn't load this tab." );
                });
            }
        });
    });

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Set Up</a></li>
        <li><a href="temp1.php">temp1 </a></li>
        <li><a href="temp2.php">temp 2</a></li>
        <li><a href="temp3.php">temp 3</a></li>
    </ul>
    <div id="tabs-1">
    content here
    </div>
</div>

temp1.phpには、テーブルにデータを入力する ajax メソッドが 1 つあります。

4

2 に答える 2

0

あなたが尋ねているかどうかは完全にはわかりませんが、最後の文から、以下の JavaScript コードが必要な理由がわからないのではないかと思われます。

$(function() {
        $( "#tabs" ).tabs({
            beforeLoad: function( event, ui ) {
                ui.jqXHR.error(function() {
                    ui.panel.html(
                        "Couldn't load this tab." );
                });
            }
        });
    });

このコードが存在する理由は、"tabs" という ID を持つ div で発生しているすべてのエラー ハンドラーであるためです。したがって、何かを読み込もうとしてエラーが返された場合、そのハンドラーはエラーをキャッチし、「このタブを読み込めませんでした」という適切なテキストを表示します。何も見えない代わりに。エラー ハンドラーが配置される理由はbeforeLoad、タブを使用するときにエラーが発生する主な場所が読み込み中に発生するためです。そのため、エラーが潜在的に発生する前にハンドラーが配置されていない場合は、キャッチできません。

于 2013-01-09T21:14:06.050 に答える
0

OK、私は自分の質問に答えるためにここにいます。すべてのページのヘッドセクションに jquery-ui.css と jquery.js へのリンクがあることに気付きました。たとえば、ul で定義されている temp1.php、temp2.​​php、temp3.phpタブの一部として index.php で。それらを削除すると、正常に動作します。各ページにjsとcssがロードされていたと思いますが、タブページの場合はindex.phpにロードされているため、そうではありません

于 2013-01-10T02:12:43.813 に答える