0

私の Java EE アプリケーション ページには、header.jsp、side menu.jsp、body.jsp、および footer.jsp があります。サイド メニューには、jQuery dynatree プラグインが含まれています。ユーザーがツリーからメニュー項目をクリックすると、本文が適切なページ (.jsp) に変更される必要があります。私はlayout.jspページにすべてのjsコードをインポートしているタイルフレームワークを使用しています。フレームセットを実際に使用せずに、フレームセットを複製する効果を実現したいと考えています。フレームセットは管理が難しく、読み込みに時間がかかると思います。

この問題にどのようにアプローチできるかを誰かが提案できますか? dynatree ノードがアクティブ化されているときに AJAX を使用して各ページをフェッチする場合、ページを手動で更新する必要があります。IFRAMEinを使用するbody.jspと、フレームがメイン ページの js 機能にアクセスできなくなるため、すべてのプラグイン js コードを再インポートする必要があります。

効率的な html ページ管理が必要です。

4

1 に答える 1

3

livejQueryを使用しているので、イベントを適用する方法と組み合わせてAJAXを使用できるはずです(ドキュメントまたはここを参照)。このメソッドは「イベント委任」と呼ばれ、jQueryは魔法のようにそれを行いますが、何が起こっているのかを理解する必要があります。delegate使用しているjQueryのバージョンによっては、代わりに使用する場合がありますlive-基本的に同じものです。

フレームセットは実際にはHTML5で非推奨になっています。新しいユーザーエージェントではすぐにサポートされなくなるため、フレームセットの使用は避けてください。うまくいけばそのアプローチを検討することを思いとどまらせるはずの長い議論については、http: //www.useit.com/alertbox/9612.htmlを参照してください。

IFRAMEアプローチはハックです。あなたはそれを機能させることができるかもしれませんが、あなたは丸い穴に四角いペグを打ち込んでいます。

結論として、内部ページへの直接ディープリンクを望まない場合は、AJAXが最良かつ推奨されるソリューションです。イベントの委任と組み合わせると、古いソリューションやハッキーなソリューションよりも優れています。また、必ず「プログレッシブエンハンスメント」のアイデアを使用してください。誰かがこれらのリンクをクリックしてJavaScriptをオフにした場合でも、コンテンツは読み込まれるはずです。つまり、通常の直接リンクから始めて、JavaScriptを有効にしているユーザーのために、それに凝ったものを追加します。それ以外の場合は、ホームページを超えたユーザーの一部を閉鎖します。

ナビゲーションにAJAXを使用する場合でも、ユーザーが自分のサイトまたは他のサイトのリンクをクリックしたときの違いを理解していないユーザーを計画する必要があります。彼らはブラウザの「戻る」ボタンを使用して、最後のページではなくGoogleに戻ってきます!それはあなたのサイトを通る彼らのナビゲーションが彼らのブラウザにとってユニークなページのように見えないからです。新しいブラウザにはこれに対処するためのツールがありますが、詳細はこの回答の範囲を少し超えています。ブラウザの履歴の操作の詳細については、MDNに関するこの記事を確認してください。

ドキュメンテーション

于 2012-04-06T18:00:07.227 に答える