この記事は、シリーズの2番目( ここが1番目 )であり、AJAXで対処されている多くの批判を排除することに専念し、サイトを少し改善するのに役立つメソッドのレビューです。
問題の本質
前回の記事「ブラウザの戻るボタンで行うこと 」では、「水平」リンクや「垂直」リンクなどの概念が紹介されていました。 まだ読んでいない場合は、さらに調査する前に確認してください。
そのため、垂直リンクはブラウザの戻るボタンを無効にするだけでなく、ブラウザがブックマークにこのページへのリンクを保存する機能も無効にします。 これは、単にHTTP GETと同じ方法でHTTP POSTリクエストを保存できないという問題に非常に似ています。なぜなら、単にアドレスバーにデータを送信しないからです( 注:もちろん、POSTリクエストの結果の「完全な」保存は、現在、これらの要求のほとんどは、POSTデータが特定の(GET)行に送信されるときに結合されます。この場合、結果のURLのみを保存できますが、POSTに送信したデータは保存できません。
この問題は、サイトに再度アクセスしたいユーザーだけでなく、検索クエリの結果にリソースへの正しいリンクを表示できるように、検索エンジンによるサイトの内部ページのインデックス作成が非常に複雑または完全に不可能であることにも関係します( 注:この問題は、数年前に提起されたフレームの問題に非常に似ています。検索エンジンはサイトのインデックスを著しく作成しましたが、リンクとしてメインページを返しました。 ユーザーがクリックしたときに新しい情報を取得した場合、サイト上のリンクは静的に登録されるか、またはそうすることになっている場合はまったく割り当てられないため、この問題は現時点では関連していないと確信しています「ハング」動的ハンドラー )。
解決策1:特別なAJAXライブラリを使用する
前回の記事では、ブラウザーに履歴を保存できるメソッドの概要を説明しましたが、一部のメソッドではブックマークを操作できます。
注:ソリューションの本質:AJAX呼び出しごとに、現在のページのキーであるアンカーとしてページURLにフラグが追加されます。 お気に入りに追加すると、ページがアンカーとともに追加されます。 次に、ページを開くと、アプリケーションはアンカーフラグをチェックし、必要なコンテンツをオーバーロードします。
- マイク・ステンハウスのアプローチ。 デモ版は非常にシンプルで、ほとんどすべてのブラウザーで動作します。 このソリューションのデモ版はこのリンクで表示でき、リンクをクリックするとページURLがどうなるかを追跡して、リンクをブックマークとして保存できます。 ブックマークを開くと、コンテンツが過負荷になります。
- Brad Neubergのアプローチ。 デモ版 。 このライブラリは、コードを不必要に複雑にすることなく、可能な限りクロスブラウザにしようとします。
- jQueryライブラリーを使用したMikageのアプローチについては、 こちらをご覧ください 。
私の意見では、この場合の非表示のiframeの使用は、ブックマークがiframeにロードされたものではなく同じメインページを含むため、まったく正当化されていません。 はい、およびbersz berszが正しく指摘されたように 、一部のiframeは広告を含むものとして自動的に「カット」できます。
最初の解決策が必ずしも適切ではない理由をもう少し説明します。
解決策2:カスタムリンクを使用する
すべてのGETパラメーターを使用して現在のページへのリンクをユーザーに提供する理想的なソリューションはありませんが、ページをブックマークに追加する機能に対するサポートの低下により、この問題は部分的に克服できます。 たとえば、このアプローチはGoogleマップで使用されます 。 ユーザーがアドレスを検索した場合、ページのURLは同じままです( http://maps.google.com )。ただし、「このページへのリンク」リンクをクリックすると、要求されたURLが変換され、現在の場所がすでに考慮されますGETパラメーター(例:http://maps.google.com/maps?f=q&hl=en&geocode=&q=Moscow&ie=UTF8&z= 17& om=1 )。
このアプローチにより、現在のページにつながる垂直リンクの水平方向の解釈を実際に作成できます。 このソリューションを使用する場合、いくつかの側面に留意する必要があります。
- 予備のブックマーク -ユーザーが特別なリンクをクリックする前にこのページをブックマークした場合、このアプローチは機能しません( 注:ページのアンカーを変更すると、ブラウザはそれを保存できませんブックマークの新しい、これはIEに当てはまります。アンカーによるブックマークの違いは考慮されませんが、Firefox 2およびOpera 9では、異なるアンカーを持つ各ページは新しいブックマークとして保存されます 。
- URLエンコード -現在の状態を記述するデータに特殊文字(タブ、パーセント、アンパサンドなど)が含まれている場合、ブックマークのリンクを作成するときにエンコード( URLエンコード )する必要があります。
- プライベートデータ -現在の状態のデータにプライベート情報(ユーザーパスワードなど)が含まれている場合、クエリ文字列のGETパラメーターとして含めるべきではありません。 (ただし、現在のページのデータに個人情報が含まれている場合は、まず、そのようなページをブックマークに保存することもできません。)
近い将来、これらの記事に記載されている問題を排除する方法、およびその他のいくつかの側面について、簡単な説明を行いたいと思います。 オンラインの例へのリンクがある場合は、それらを共有してください。 これらのアプローチをすべて検討してみます。 私の資料の議論に積極的に参加してくれたすべての人に感謝します。 述べられた問題に対するあなたの意見と見解に感謝します。
Web Optimizator:サイトの読み込み速度の確認