2012-02-13 10 views
0

私は自分のC#/ XNA/WP7ゲームに行くためにPHP/mysqlで自分の最高得点の "サービス"を作った。Webクライアントをリセットする必要がありますか?

最初は見た目は素晴らしいですが、アプリケーションを終了して起動しないと更新されません。

私は何をやっている:

  • スタートゲーム、ハイスコアを見て、ゲームをプレイ、スコアを入力して、私はハイスコアに変化は見られないこのシナリオでハイスコア を見て私はゲームを再起動した場合I行う。私はハイスコアを見ずに、直接ゲームをプレイした場合、私は私が戻ってサーバーから得たデータにブレークポイントを入れて、それは同じことを返しました。しかし、私は再起動する場合は、新鮮なハイスコア:(

が表示されますそれはあなたの問題だ場合、私は新鮮なハイスコアリストを取得する。いただきました!壊れ

、誰もが知っていますか?

+0

Webサービスを呼び出すために使用するクラスを表示できますか? – loyalpenguin

答えて

1

これはキャッシングの問題です。応答オブジェクトをチェックして、IsFromCacheプロパティがtrueであるかどうかを確認します。そうであれば、それに対処する方法はいくつかあります。

例#2のキャッシュディレクティブ

PHPスクリプトはしばしば必要があり、動的コンテンツを生成:PHPサイトのheader記事の例2で説明したように、サーバー側のキャッシュ制御ヘッダを追加

クライアントブラウザまたはサーバーとクライアントブラウザ の間のプロキシキャッシュによってキャッシュされません。多くのプロキシとクライアントでは、との キャッシュを無効にするように強制することができます。

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?> 

注:

あなたのページがあなたが すべての出力しない場合でも、キャッシュされないことがあります上記のヘッダー。ユーザーが のブラウザにデフォルトのキャッシング の動作を変更できるように設定できるオプションがいくつかあります。上記のヘッダーを送信すると、 の設定が上書きされ、そうでない場合はスクリプトの出力がキャッシュされて になる可能性があります。

さらに、session_cache_limiter()および 構成設定は、セッションが使用されているときに自動的に 正しいキャッシング関連のヘッダを生成するために使用することができます。

変更し、クライアント上のアプリケーションドメインのキャッシュポリシー:

// Set a default policy level for the "http:" and "https" schemes. 
HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default); 
HttpWebRequest.DefaultCachePolicy = policy; 

変更クライアント上のWeb要求に対するキャッシュポリシー:

WebRequest request = WebRequest.Create(uri); 
// Define a cache policy for this request only. 
HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); 
request.CachePolicy = noCachePolicy; 

HttpRequestCacheLevel EnumerationのためのMSDNドキュメントを参照してください。クライアント側のメソッドの詳細については、

0

ゲームは私は知らないが、私は、Webクライアントで迷惑なキャッシュの問題が発生している。基本的には、要求がキャッシュされています初めて、ページが更新されても次回は同じコンテンツが得られます。キャッシュをクリアする方法が見つからなかったため、ランダムなパラメータを追加して問題を解決しましたウリの終わりに。例えば:

http://www.example.com/yourPage.html?nocache=45646487

この方法で、あなたは二度同じリクエストを送信しないことを確信しています。

関連する問題