2012-04-06 8 views
0

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

どのように私はこの問題に近づくことができます提案する? dynatreeノードがアクティブになっているときにAJAXを使用して各ページを取得すると、手動でページを更新する必要があります。 body.jspIFRAMEを使用すると、フレームがメインページのjs機能にアクセスできなくなるため、すべてのプラグインjsコードを再インポートする必要があります。

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

+2

"FRAMESETを使用することが可能です?" –

答えて

3

jQueryを使用しているので、liveイベントの適用方法(see the docsまたはhere)と組み合わせてAJAXを使用することができます。この方法は「イベント委任」と呼ばれ、jQueryがあなたのためにマジックのように機能するとしても、understand what is happeningにする必要があります。使用しているjQueryのバージョンによっては、liveの代わりにdelegateを使用することもできます。

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

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

ボトムラインの場合、内部ページに直接リンクしたくない場合は、AJAXが最も適しています。イベントの委任と組み合わせると、これは古いかハッキーなソリューションよりも優れています。また、「progressive enhancement」のアイデアを使用してください。誰かがリンクをクリックしてJavaScriptをオフにしても、コンテンツはまだ読み込まれます。つまり、通常の直接リンクから始めてから、javascriptを有効にしているユーザーのためにその上に素晴らしいものを追加します。それ以外の場合は、自宅のページを過ぎたユーザーの割合でユーザーを閉鎖します。

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

ドキュメント

+1

そして、あなたがすべてをマスターしたら、少なくともFirefoxとChromeでは、history.pushStateとwindow.onpopstateを使用して、前後ボタンが機能するようにすることができます。 – Dave

+0

ニース、それについての宣伝を追加します。 –

関連する問題