Google Web Toolkitを使用して、hard refresh (control + F5)
に相当するコードを作成したいと思います。GWTのハードリフレッシュ
GWTのWindow.Location
が動作するかどうかはわかりません。
import com.google.gwt.user.client.Window.Location;
Window.Location = currentPage; // I don't think it'll be hard refresh
Google Web Toolkitを使用して、hard refresh (control + F5)
に相当するコードを作成したいと思います。GWTのハードリフレッシュ
GWTのWindow.Location
が動作するかどうかはわかりません。
import com.google.gwt.user.client.Window.Location;
Window.Location = currentPage; // I don't think it'll be hard refresh
現在のページをリロードするには、Window.Location.reload()メソッドを呼び出す必要があります。
現在のブラウザウィンドウをリロードします。すべてのGWT状態は失われます。
またはデフォルトforce reload is falseでいるのであなたも、(どのようにTODOの下)独自のJSNIを指定することができます。
public static native void forceReload() /*-{
$wnd.location.reload(true);
}-*/;
だから 'GWT'のWindow.Location.reload()は強制的にリロードしませんか?しかし、JSNIコードは 'true'パラメータが使用されるかどうかを決定します。 –
Window.Location.reload()メソッドの実装を見ると、パラメータとして 'true'は使用されません。デフォルトではfalseです。はいネイティブJavascriptが行います。ユーティリティクラスがある場合は、この静的メソッドをUtilityクラスに追加できます。 –
あなたの答えはJSNIコードだけを含むべきではないのですか? 'Window.Location.reload()'がハードリフレッシュをしない場合は、あなたの答えを編集できますか? –
https://developer.mozilla.org/en-US/docs/DOM/window.location#Methodsによると、あなたは、現在のページのリロードを強制するwindow.location.reload(true)
を呼び出す必要があります。
残念ながら、GWTは、Window.Location.reload()
でwindow.location.reload()
のみをラップし、キャッシュまたは別のgetからページを取得するのはブラウザによって異なります。これは、最もクロスブラウザのソリューションを実現するために行われます。
これまでに試したことはありませんが、以下を使用することができます。
リロードGWTのページについてはpublic static native void reload(boolean force) /*-{
$wnd.location.reload(force);
}-*/;
、2つのオプションがあります。
1)Window.Location.reload();
現在のブラウザウィンドウをリロードします。すべてのGWT状態は失われます。
2)Window.Location.replace( "newurl");
現在のURLを新しいものに置き換えます。すべてのGWT状態は失われます。ブラウザの履歴では、現在のURLが新しいURLに置き換えられます。
ハードリフレッシュする必要があるのはなぜですか?外部リソースを持っているか、GWTによってすべてが処理されていますか?最後のケースでは、なぜリロードを強制したいのかわかりません。 –
@AndreaBoscoloでは、このハードリフレッシュを追加することを検討しています。私のコードは、ユーザーを一般的なエラーページにリダイレクトします。しかし、それらを一般的なエラーページにリダイレクトするのではなく、それらを再指示して再度ログインしてください(ハードリフレッシュが達成する)。ユーザーの資格情報は15分後に失効します。根本的な問題に対処する方法がわからないので、ユーザーに強制的に新しいブラウザを開いて再度ログインさせるよりも、きれいなリフレッシュを追加する方が良いです。 –