0

ユーザーがページを更新するときに、更新が実際にサーバーに送信される前に存在する可能性のあるクエリ文字列を削除します(値を変更するのではなく、完全に削除します)。これは、Webアプリのユーザーの時間の節約として行っています。

beforeunloadその見た目から、イベントでクライアント側で何らかの形でページが更新されている様子を捉えることができます。このイベント内で、クエリ文字列を削除して、クエリ文字列なしでページを更新することはできますか?

[編集]クエリ文字列パラメータが存在する場合、サーバーはそのデータを使用してデータベースにクエリを実行し、データを返します。それが存在しない場合、これは行われません。アプリはデータをローカルストレージに保存します。そのデータの1つは、このアプリのそのブラウザーのローカルストレージを識別するGUID文字列です。これをサーバーDBに同期できます。誰かと共有することもできます。共有すると、GUID文字列のクエリ文字列IDを含むURLが送信されます。彼らがリンクをクリックすると、クエリが表示されます。DBは情報を友達のデバイスに送り返し、ローカルに保存して表示します。彼らがページを更新した場合、それは再びそれを行います。javascriptはデータが複製されていないことを確認するので、悪いことは何も起こりませんが、遅くなります。99%のクライアント側である私のアプリでは、クエリ文字列を使用してページを更新する必要はありません。

したがって、1日の終わりにこれを行うと、時間を節約できます。サーバー上のDBを再クエリする必要がなくなり、クライアント側でデータを再処理する必要がなくなります。それを行っても害はありませんが、より効率的にしようとしているだけです。

4

1 に答える 1

1

イベントハンドラーで、現在のURLを取得し、クエリ文字列セグメントを空の文字列に置き換えることができます。

次のようなものを試してください:

window.location = window.location.replace(/\?.*/, '');

これにより、クエリ文字列なしで新しいURLが返されます。

于 2012-12-01T16:06:57.563 に答える