問題タブ [hashbang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2869 参照

javascript - シバンとURIの解析

サイトを完全な非同期ドキュメントの読み込みに移行したいと考えていますが、#!1)リンクを切断したくない、2)より柔軟な処理方法が必要なため、リクエスト処理の方法を使用したくありません。サイトが取得するURI。

共通スタイルのURL(例:http ://ddrewdesign.com/blog/jquery-is-or-is-child-of-function )で作成できるサイト用の軽量MVCを構築することができました。正しいリクエスト。

私の質問は、これは簡単にできることです。私は何が欠けていますか?#!この方法がユーザーエクスペリエンスの観点からより理にかなっていると思われるのに、なぜGawkerとGoogleが選択したのですか?

編集

明確にするために、元々、私のサイトはmod_rewriteリクエストを取得するためのクエリ文字列メソッド(no)のみを使用していました。これらのリンクはウェブ全体にあり、私はそれらを壊すことはできません。私がハッシュバン法を使用するように移動した場合、彼らはそうなるだろうと私は理解しています。繰り返しますが、これは私の混乱の一部かもしれないので、私がすべてを説明したと言っているわけではありません。これまで読んだことがないので、そのクエリ文字列に対応できるように見えたので、何が欠けているのかを尋ねています。

0 投票する
2 に答える
1483 参照

javascript - jQueryMobileでのみ特定のリンクのAJAX/ハッシュ動作を抑制する

これに対する古い答えをいくつか見つけましたが、jQueryMobileでは無効になっているようです。

特定のリンクでのみAJAX/hashbangの動作を無効にしたい。グローバルに無効にできることがわかりました。

...しかし、カスタムclick()ハンドラーが台無しにならないように、特定のクラスに対してのみ無効にしたいのです。trueを返すか、click()のe.preventDefault()は今回は役に立ちません。

0 投票する
3 に答える
6038 参照

jquery - ハッシュバング ナビゲーション用の jQuery Mobile と「クエリ パラメータ」

私は jQuery Mobile を使用しており、1 つの HTML ページにいくつかのページがあります。これらのページを開くときに、パラメーターを渡して、パラメーターが URL で永続化されるようにしたいと考えています。

例えば

それが開き、beforeshow イベントでパラメータ X と Y にアクセスできました。

これは可能ですか?ハッシュバングでパラメーターをエンコードするために提案する代替手段は何ですか?

0 投票する
1 に答える
403 参照

jquery - URL 内の jQuery Mobile データ

jQuery Mobile を使用して、どのようにハッシュバング URL を作成#!/value_1/value_2し、両方のパラメーターが常に同じ順序であると仮定して、これらの値の両方を読み取ることができるでしょうか。

1 つの注意点は、これは 1 ページ構造によって強化されているため、外部ページにリンクしていないことです。

0 投票する
3 に答える
6643 参照

jquery - ハッシュバンするかしないか?

新しい Web サイトを開発していて、できるだけ AJAX を利用したいと考えています。基本的に、ユーザーがホームページから離れることはほとんどなく、すべてがポップアップ ウィンドウ、スライダー、セクションなどに表示されるようにしたいと考えています。

現在、私たちの既存のウェブサイトはすでにかなり上位にランクされているので、Google の満足度も維持したいと考えています。Making AJAX Applications Crawlable by Google を読んでいて、_escaped_fragment_を介してクローラーに同じコンテンツを提供する必要があることを理解しています。

SEO フレンドリーな URL を既に提供しているUmbraco
を 使用して、この Web サイトを開発したい問題。すなわち

しかし、問題は、Umbraco コアをハッキングせずに_escaped_fragment_を実装する簡単な方法がないことです(少なくともそれは私の知識です)。以下に投稿したソリューション (回答) を使用すると、Javascript を使用しないユーザーも満足できます。Win-Winの状況?教えてください!=)

更新
昨日、別のユーザーからの回答があり (現在は削除されています)、Google はもはや_escaped_fragment_メソッドを使用しないことを提案し、これを除外することを提案しました。これは本当ですか?Google は実際に AJAX を実行してコンテンツを表示しますか?

ありがとう
マルコ

0 投票する
1 に答える
11982 参照

javascript - Backbone.js URL ルーティング

backbone.js でルートを設定すると、フレームワークが自動的に先頭に # を付加するようです。いえ

www.example.com/#example/123 のリンクに一致します

後で URL にハッシュタグを追加することはできますか? 基本的に、アプリを www.example.com/text/#example/123 としてビルドしようとしています (# の前に text/ があることに注意してください)。

backbone.js フレームワーク自体を変更せずにこれを行う方法はありますか?

0 投票する
1 に答える
1132 参照

javascript - HTTPS ページの問題で Backbone.js を使用したショッピング カート?

Backbone.js を使用してショッピング カートを作成する際に問題が発生する可能性があるかどうか、具体的には HTTPS 経由のハッシュバングを使用する場合にセキュリティ上の問題が発生する可能性があるかどうかを考えてみてください。

また、AJAX を介してクレジット カードの詳細を POST できると思いますよね?

乾杯、

0 投票する
0 に答える
491 参照

javascript - #! の使用時に余分なページの読み込みを回避する AJAX ナビゲーション

基本的に一連の連続したページである Web サイトを書いています。非修飾 URL は最後のページを指し、修飾 URL は特定のページを指します。したがって、次のようになります。

次の要件があります。

  • ページが AJAX によって動的に読み込まれるようにします。ユーザーは多くの連続するページを短時間で順番にブラウズする可能性があるため、リロードと再描画を回避したい (そして、ナビゲーションを高速化するために隣接するページの JavaScript プリフェッチを追加する)
  • ページをブックマーク可能にしたい
  • ページをクロール可能にしたい
  • ほとんどのユーザーにとって機能するようにしたい。

そこで、次のスキームを思いつきました。

  • アーカイブ ページの標準の正規 URL はhttp://example.com/3です。この URL からアクセスしたページは、JavaScript がインストールされているかどうかに関係なく、完全に読み取り可能です。JavaScript が利用できない場合、他のページへのリンクは通常のリンクであり、すべてが古き良き方法で機能します。これはクローラーにも機能します。
  • JavaScript、および履歴操作 (pushState および replaceState) が使用可能なブラウザーがそのような URL にアクセスすると、他のページへのリンクがアクセスされたときにコンテンツが AJAX を使用して動的に更新されます。その後、ブラウザの履歴が JavaScript によって更新されます。
  • JavaScript は使用できるが、履歴操作は使用できないブラウザーでサイトにアクセスすると、ユーザーは、http://example.com/3 にアクセスすると、JavaScript を使用してhttp://example.com/#!3 にリダイレクトされます . メイン ページhttp://example.comにアクセスしても、リダイレクトは発生しません。その後、ハッシュ変更イベントを使用してナビゲーションが行われます。
  • クローラーが外部リンクhttp://example.com/#!3を介してアクセスしようとすると、実際にはhttp://example.com/?_escaped_fragment_=3 ( 1 ) を要求します。このような URL の場合、Web サーバーはhttp://example.com/3への永続的なリダイレクトを発行し、その後正しくクロールされます。

ここではすべて問題ないように見えますが、考えられるすべてのケースを見てみましょう。


1. JavaScript ブラウザなし

1.1。JavaScript ブラウザーがルート URL にアクセスしない

期待どおりに動作します。

1.2. JavaScript ブラウザーが正規 URL にアクセスしない

期待どおりに動作します。

1.3。JavaScript ブラウザーがシバン URL にアクセスしない

( http://example.com/#!3 )

黙って失敗!ユーザーは、3 ページ目ではなく最後のページを取得します。

2. クローラー

2.1. クローラがルート URL にアクセス

期待どおりに動作します。

2.2. クローラが正規 URL にアクセス

期待どおりに動作します。

2.3. クローラーがシバン URL にアクセス

http://example.com/#!3

クローラーは実際にhttp://example.com/?_escaped_fragment_=3をリクエストし、正規 URL へのリダイレクトを発行します。これは Web サーバーに対する 1 つの追加要求ですが、大したことではありません (データベースから余分なページがフェッチされてユーザーに返されることはありません)。

3.古いブラウザ

3.1. 古いブラウザがルート URL にアクセスする

他のページへのリンクは、それらのシバン バージョンに置き換えられます。ナビゲーションは AJAX によってスムーズに行われます。

3.2. 古いブラウザが正規の URL にアクセスする

ユーザーには、シバン URL へのリダイレクトが発行されます。問題: サーバーは実際にページを 3 回フェッチして提供します!

  1. http://example.com/3 <- サーバーによって完全に提供されます
  2. JavaScript はhttp://example.com/#!3へのリダイレクトを発行します
  3. サーバーはhttp://example.com/のみを認識し、最後のページを提供します
  4. JSON を使用して (再び) ページ 3 を取得し、ページのコンテンツを置き換えます。

3.3. 古いブラウザーがシバン URL にアクセスする

リダイレクトは必要ありませんが、最後のページに余分な負荷がかかります!

  1. ユーザーはhttp://example.com/#!3にアクセスします
  2. サーバーはhttp://example.com/のみを認識し、最後のページを提供します
  3. JSON を使用してページ 3 を取得し、ページのコンテンツを置き換えます。

4. 最新のブラウザ

4.1. 最新のブラウザはルート URL にアクセスします

4.2. 最新のブラウザは正規の URL にアクセスします

この2つの場合は問題ありません。ナビゲーションは AJAX によって行われ、正規 URL は履歴にプッシュされます。

4.3. 最新のブラウザーがシバン URL にアクセスする

URL は正規 URL に変更されます。コンテンツは AJAX によって読み込まれます。問題は、以前と同様に、最後のページでサーバーからの余分な負荷が発生することです。


要約すると、次のようになります。

  • このソリューションは基本的に機能します
  • しかし、シバン URL を使用すると、ほとんどの場合、最後のページの不要なロードが発生します。これは、サーバーが最後のページを処理する必要があるかどうか、またはこれが実際にシバン リクエストの一部であるかどうかがわからないためです。

私の質問は、これらの余分なページの読み込みを回避する方法について誰かが良い考えを持っていますか? このような問題を解決するための良い習慣はありますか?

0 投票する
2 に答える
384 参照

javascript - 実装方法 #! ベースリンク?

#URL を使用して、またはURL でページをすばやくナビゲートする方法を常に考えてい#!ました。Google のような多くの Web サイトはhttp://www.google.com/nexus/でそれを使用しています。ユーザーがいずれかのリンクをクリックしても、何も変化せず、すぐに開き、URL のみが変化します。例:www.example.com/#contactまたはwww.example.com/#home

8ページでこれを行うにはどうすればよいですか? (ホーム、機能、料金、連絡先、サポート)

0 投票する
1 に答える
2577 参照

ajax - シバン/ハッシュバンは何のためですか?

AJAXコンテンツをGoogleでクロール可能にする以外に、シバン/ハッシュバンの用途はありますか? それともそれですか?