2011-04-29 17 views
1

問題は次のとおりです:main.phpで私はJavaScriptスクリプトを使用して、ユーザーのイメージをサーバー上の新しいものと同期させる。しかし、すべてのファイル機能が終了しても(問題なし)、ヘッダをmain.phpにリダイレクトした後、非常に高速な更新が行われますが、イメージは更新されません。古いファイルを見ていますが、 F5新しい画像が表示されます。PHPのリダイレクト(キャッシュの問題?)後に画像が更新されない

キャッシュの問題?私はいくつかのHTMLメタタグを試しましたが、運はありません。何か案が?

ありがとうございます。

EDIT:明確にするためです。私はリダイレクトでヘッダーとタイムスタンプで試しましたが、運はありません。ここにプロセスがあります:

  1. main.php、一度ユーザーが彼/彼女のイメージをクリックすると、javascript(location.href)からupdate.phpへのリダイレクトが開始されます。
  2. サーバーから新しいイメージを取得して、前のイメージを上書き保存します(名前は同じです)。
  3. コードにヘッダーを追加します.Chaeヘッダーはありません。 main.phpと私はまた、タイムスタンプ(time())GETを介していくつかのパラメータを渡します。
  4. 私はmain.phpに達しますが、リロードはめったに速くなく、新しいイメージは表示されません。

今私ははるかに明確だと思います。

ありがとうございました。

+0

サーバーにロードバランサ、プロキシ、キャッシングシステムがありますか。 – mathk

答えて

1

はい、これはキャッシュの問題です。IEでは通常これを行います。このようなシナリオを避けるために、私は常にリクエストにタイムスタンプを追加しています。

EDIT:

はい、私はそれを得ました。私は以前も同じ問題を抱えていました。どちらの方法でもタイムスタンプが解決策です。あなたは<のIMG SRC = "path_to_image/image.jpg * ?編集したタイムスタンプ*" にタイムスタンプを追加する必要が

/>

それは、私にとってはあまりにもあなたのために働く希望を働きました。

+0

私もこれを試しましたが運がありません。私は質問にいくつかの情報を追加しました。ご協力いただきありがとうございます。 – Datenshi

+0

はい!おかげさまで、イメージリクエストのタイムスタンプが完璧に機能しました。 – Datenshi

+0

@Datenshi、stackoverflowのお手伝い –

1

は、おそらくあなたは、画像のURLに?t=fooのようなものを追加することができheader機能

+0

私はそれを試みたが運がない。私は質問にいくつかの情報を追加しました。ご協力いただきありがとうございます。 – Datenshi

2

を使用してヘッダーExpiresまたはCache-Controlを追加する必要があります。ここで、fooはランダムな文字列または数字です。あるいは現在のタイムスタンプかもしれません。これにより、ブラウザは完全に新しいイメージを要求し、キャッシングインスタンスは何も実行しません。

0

この方法を試してみてください。

<?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 
header("Location:http://www.test.com"); 
exit; 
?> 
+0

私は頑張ってみました。私は質問にいくつかの情報を追加しました。ご協力いただきありがとうございます。 – Datenshi