4

私はこのようなJSPページを持っています:

<html><body>
<div id="mainContainer">
    <div id="firstDisplayStuff">...</div>
    <% out.flush(); %>
    <div id="slowStuff">
        <mytaglib:abc name='SlowBoat'>...</mytaglib>
    </div>
</div>
<div id="floatRightContainer>
    <div id="endingDisplayStuff">...</div>
<div>
</body></html>

それがtaglibにぶつかると、それは永遠にかかり、その遅延は避けられません。

したがって、out.flush();Iを使用すると、少なくともを表示できfirstDisplayStuffますが、taglibのものが実行されている間、ユーザーはそこに座って半分のページを見るだけです。それが行われた後にのみ、ユーザーはを見ることができますendingDisplayStuff

両方ともすぐに表示しfirstDisplayStuffたいです。endingDisplayStuff

しかし、jQueryを使用すると、<div id="slowStuff">空白のままにして、後で読み込む方法があると思いました。

<div id="slowStuff">両方のdisplaystuffdivが表示された後、jQueryコードはどのように読み込まれますか?コードはどこに置きますか?どのように呼び出されますか?

編集:既存の例に追加<div id=mainContainer>されました。<div id=floatRightContainer>

4

2 に答える 2

5

DOM で通常の Ajax リクエストを準備し、レンダリングされた HTML で div を埋めます。

$(function() {
  $("#slowStuff").load(theUrl, etc.)
});

loadドキュメントを参照してください。

カスタムタグを含む JSP をレンダリングする (JSP、アクション、コントローラーなど) にリクエストを送信します。

于 2012-06-04T17:48:48.247 に答える
5

これには JavaScript は必要ありません。遅い div の前に最後の div を配置し、CSS を使用して、必要に応じて画面上で div を配置します。

<html><body>
<div id="firstDisplayStuff">...</div>
<div id="endingDisplayStuff">...</div>

<% out.flush(); %>
<div id="slowStuff" style="display: none;">
    <mytaglib:abc name='SlowBoat'>...</mytaglib>
</div>
</body></html>

body onload から呼び出される数行のコードを使用して、低速の div をそれが属する場所に取得し、表示することができます。 $('#slowStuff').insertAfter('#someDiv')適切な場所に配置し、$('#slowStuff').show();表示します。

于 2012-06-04T17:50:13.603 に答える