問題タブ [jquery-bbq]
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.
jquery - クエリ文字列とフラグメントの違いは?
jQuery BBQを使用する場合、「querystring」および「fragment」という単語を使用しています。
2つの違いは何ですか?
jquery - URLのハッシュマークに続く変数を使用してサーバーにページをロードするにはどうすればよいですか?
現在、ユーザーが次のURLにアクセスすると:
サーバーは「details.html」を返し、ページが返されるとクライアント側のAjax呼び出しを実行して、id=123のアイテムのデータをロードします。JQuery用のBBQプラグインを使用しています
サーバーでハッシュマークに続くパラメーターを取得して、ページがサーバーによって最初に返されるときに、の詳細を含むページを返すことができるようにする方法はありますかid=123
?
これは、ユーザーのブラウザでJavascriptがオンになっているかどうかに関係なく、詳細が引き続き表示されるようにするために必要です。また、Javascriptがオンになっている場合は、サイトの既存のボタンをクリックして、Ajaxを介してコンテンツを変更できます。
すべての助けを事前に感謝します
編集:
現在、ページは次の方法で返されます。
javascript - jQuery BBQ Pretty URLs
AJAX履歴管理にBBQjqueryプラグインを使用していますが、「かなりのURL」を取得するのに問題があります。私は考えられるすべてのことを試しましたが、うまくいけば、私は愚かな何かを見逃していて、誰かが私を正しい方向に向けることができます。
ハッシュフラグメント内の空のクエリを回避するために入力された入力のみのフォームをシリアル化しています。アラートdecodeURIComponentは文字列を希望どおりに表示していますが、それでも最終的には#hashfragment=key%26value%3Dkey%26value
誰か助けてもらえますか?関連するコードは以下のとおりです。
ありがとう。
jquery - jQuery AJAXアプリケーションで戻るボタンを有効にする方法を知るにはどうすればよいですか?
ここでは、BBQやjQuery Addressなどの最も人気のあるプラグインを参照する質問を含め、最も人気のある質問をすべて見てきました。
しかし、私が欠けているものがあります。私はそれらのプロジェクトで見たものから一歩後退する指導が必要です。彼らは私が明らかに持っていないいくつかの基本的な知識を前提としており、例のコードの各行が実際に何をしているのかを推測することはできません。
私は4つのことをしたい:
1)AJAX以外のアプリと同じように進むボタンを機能させます。
2)AJAX以外のアプリと同じように戻るボタンを機能させます。
3)ブックマークできるように、URLをアドレスバーに反映します。
4)AJAXのものをクロールできるように、ディープリンクを生成します。
そしてそれがすべてです。それ以外はやり過ぎです。これはRails3.0.4アプリケーションであり、すべて「#」のhrefを持つリンクがあります。リンクの1つをクリックすると、application.jsの関数がアクティブになり、現在のページのdiv内のhtmlが、.js.erbファイルからレンダリングされたパーシャルから作成されたより多くのリンクに置き換えられます。
正常に機能するパンくずリストがありますが、戻るボタンを使用すると、アプリケーションを表示する前に表示していたWebサイトに移動できます。
だから私の質問のいくつかは次のとおりです。
1)各リンクには、単純な「#」ではなく、一意のhref値が必要ですか?
2)そのdivを毎回置き換える必要がありますか、それとも単に非表示にして新しいdivを作成する必要があります。もしそうなら、それぞれの新しいdivは新しいIDを持つべきですか?
3)現在、アドレスバーのURLは変更されておらず、これらのAJAXリクエストはすべてPOSTであるため、アクセス時に必ずGETリクエストをトリガーするこれらの新しいURLの1つに応答するように、Railsで何かを行う必要がありますか?ブラウザの履歴または戻るボタンを介して?
これらは、私がそこにある既存の質問を実行することを妨げている障壁です。あなたが提供できるどんな助けにも感謝します!
編集:
私のアプリケーションはタブベースではありません。ページの読み込み時にすべてのアンカーが使用できるわけではありません。ユーザーがリンクをクリックすると、次のようになります。
1)非表示のフォームのフィールドには、クリックされたリンクのテキスト値が入力されます。
2)非表示のフォームはシリアル化され、POSTを使用してコントローラーアクションに配信されます。
3)コントローラーアクションは、誰が要求を行ったかを判別し、アクセスできるデータを把握し、フォーム値(現在はparams)を使用してオブジェクトのリストを取得します。
4)これらのオブジェクトは.js.erbビューテンプレートに渡され、渡された値でパーシャルがレンダリングされます。
5)新しいリンクは.js.erbテンプレートのjsを介してリバウンドされます。
基本的に、私のデータは静的ではないため、実際に「戻る」には、フォームの状態を現状のままにしてPOSTリクエストを再生成する方法を理解する必要があります。または、フォームの状態と画面を何らかの方法でキャッシュできますか?
jquery - jQueryで大きな長いクエリ文字列を逆シリアル化するにはどうすればよいですか?
動的でデータベース駆動型の AJAX アプリケーションで戻るボタンと進むボタンを有効にする方法を見つけようとしています。状態をキャプチャするために、連想配列内の url、type、および data のいくつかの値をトラップしています。
「hashchange」イベント中にブラウザーからハッシュ文字列を取得しています。エンコードされたクエリ文字列から連想配列に戻す方法がわかりません。誰でも助けることができますか?
jquery - jQuery / JavaScriptで、「form.serialize」を使用して変換されたフォーム値の文字列を逆シリアル化するにはどうすればよいですか?
私はこれで私がどれほど困難を抱えているかに驚いています。
form.serializeを使用して、.ajaxを使用して送信するためにフォームを文字列にシリアル化します。また、この文字列値をハッシュに追加しています。ハッシュは、進むボタンと戻るボタンを有効にするための状態を管理するために使用しています。
私の問題は、JavaScriptを介してシリアル化されたフォームからこれらの値を取得する必要があり、その方法がわからないことです。文字列を取得できますが、基本的にはクエリ文字列です。これは実際にはクエリ文字列ではなく、クエリ文字列としてフォーマットされているだけであることに注意してください。
jquery - jQuery BBQ、ハッシュ変更をトリガーしない繰り返しクリックを検出する方法
jQuery プラグイン hashchange を使用しています: http://benalman.com/projects/jquery-hashchange-plugin/
これはうまく機能します。問題は、リンクを複数回クリックした場合です。
ユーザーがリンクを複数回クリックしたときにデータを更新できるように、ハッシュ変更は再起動しません。それは可能ですか?
繰り返しクリックを検出する方法について何かアイデアはありますか?
ありがとう
javascript - フラグメント URL 変換
BBQ プラグインは既に動作しているため、これは表面的な変更にすぎません。/index.html#pages/index.html
URLをからに変換する方法がわかりません/index.html#index
基本的にはフラグメント変換だと思いますが、JS は初めてです。何かご意見は?
jquery - ハッシュの変更に依存せずに ajax でブラウザの戻るボタンをサポートしますか?
現在、jQuery BBQ プラグインを使用してクッパ ナビゲーション ボタンが機能するようにしていますが、ユーザーがいずれかのページのブックマークを保存すると問題が発生します。
ユーザーがブックマークを介して戻ると、最初にページ全体をロードする必要があります...
URL のハッシュ部分を ajax コールバックに使用してページを完成させる前に。
この問題に対処するために、メイン ページへのすべての URL 呼び出しで「スケルトン」ページのみを作成して、すべての「内部」コンテンツが ajax 経由でフェッチされるようにしましたが、これは優れた解決策ではないようです。
「戻るボタンの履歴」などをサポートするために「ハッシュ」メソッドを使用しないメソッド/プラグインを知っている人はいますか?
jquery - IE 8 は、jQuery BBQ を使用したページのリロード時に生の ajax 応答を表示します
ページネーション リンクでは、Ben Almans の jQuery BBQ および jQuery hashchange プラグインを使用しています。どちらも Opera と Firefox では期待どおりに動作しますが、IE 8 では動作しません (驚いたでしょう?)。IE は ajax、戻るボタン、hashchange でもうまく機能しますが、リロード ボタンをクリックすると失敗し、以前に読み込まれたページで実行する代わりに生の ajax応答が表示されます。
したがって、ここに私の醜いコードと、ページネーションに実装しようとしている機能に関するいくつかの説明があります。
1) 検索エンジンに適したリンク (サーバーは、クライアント側の JavaScript の可用性に応じて、html または js に応答します)。
2) JS がオンになっている場合に動的に変更可能な URL (「#」記号を使用)。
3) 履歴と戻るボタンのサポート。
4) 二重リクエストの最小化 (同じコンテンツが html ページでロードされた場合、ajax リクエストを行わないでください)。
JS:
テンプレート (Rails ビュー):
AJAX テンプレート (Rails js ビュー):
UPD:更新中に IE がリクエスト タイプ ヘッダーを送信しない (または Rails が判断できない)。そのため、Rails は HTML ではなく JS ビューを生成します。解決方法:
より良い解決策はありますか?