- - PR -
同一ページに同時に submit するとフォーム内容が転写される
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-04 21:16
ご助言ありがとうございます。
早速テキストボックスとボタンのみのページを作成してテストを行ってみました。 結果、ボタンを乱打しても再現せず。 そこで、少しずつ問題の起こるページに近づけて行く形でコードを追加していき、 その都度同時クリックのテストをしてみました。 すると、ある時点で現象が再現しました。ところが、そのコードを削除しても なお現象は発生し続け、結局最初に追加した下記のコードまで削除した段階で 発生しなくなりました。 WebForm1.aspx <%@ outputcache duration="1" varybyparam="none" %> 再度、追加して動作させると、ある程度の回数まではクリックしても転写はされず、 (定量的に何回ということは判然としませんが)ある時点から現象が発生し始め て、以降短い間隔でクリックすれば必然的に起こるようになりました。 上記のコードはキャッシュを残さずに常に最新状態を表示させる効果があることを知り、 古い内容が表示されるのはごめんなので設定していたのですが、一般的には設定すべき ではないのでしょうか? 試験回数が少ないので絶対にこのコードが原因とは言い切れないですが、こういう 現象につながる危険性のあるものなのでしょうか? 実は上記コードと合わせて同じような効果が得られそうなので下記も同時に記述して いるのですが、これは良くないでしょうか? WebForm1.aspx <meta http-equiv="cache-control" content="no-cache"> 話がずれてしまうのですが、WEBアプリケーションのキャッシュに関する設定は 皆様どのようになさっていますか? 闇雲な質問で恐縮ですが、皆様のご意見を頂ければうれしいです。 | ||||
|
投稿日時: 2005-10-05 10:36
いいえ。 http://support.microsoft.com/default.aspx?scid=kb;ja;308375 を読むと、Get または Post パラメータに関係なく、有効期限1秒のページキャッシュが働きます。 [ メッセージ編集済み 編集者: todo 編集日時 2005-10-05 10:37 ] | ||||
|
投稿日時: 2005-10-05 11:26
1秒≒"保持しない"のと同等と、かなり都合良く解釈してしまっていました。 同じページに異なる端末からの1秒以内での連続するリクエストがあった場合に、キャッシュが働いて後続のリクエストに対して先駆けのリクエストに対するのと同じレスポンスが返ることがある(今回の現象では、あるタイミングから返るようになっていた)ということになるのでしょうか。 @ outputcache の属性をきちんと理解せずに(コピー&ペーストで)使用していたのがいけなかったです。教えていただいたURLのページをよく読んでみます。 |