- PR -

同一ページに同時に submit するとフォーム内容が転写される

投稿者投稿内容
LOBO
会議室デビュー日: 2004/07/22
投稿数: 11
お住まい・勤務地: 愛知
投稿日時: 2005-10-04 21:16
ご助言ありがとうございます。
早速テキストボックスとボタンのみのページを作成してテストを行ってみました。
結果、ボタンを乱打しても再現せず。
そこで、少しずつ問題の起こるページに近づけて行く形でコードを追加していき、
その都度同時クリックのテストをしてみました。
すると、ある時点で現象が再現しました。ところが、そのコードを削除しても
なお現象は発生し続け、結局最初に追加した下記のコードまで削除した段階で
発生しなくなりました。

WebForm1.aspx
<%@ outputcache duration="1" varybyparam="none" %>

再度、追加して動作させると、ある程度の回数まではクリックしても転写はされず、
(定量的に何回ということは判然としませんが)ある時点から現象が発生し始め
て、以降短い間隔でクリックすれば必然的に起こるようになりました。

上記のコードはキャッシュを残さずに常に最新状態を表示させる効果があることを知り、
古い内容が表示されるのはごめんなので設定していたのですが、一般的には設定すべき
ではないのでしょうか?

試験回数が少ないので絶対にこのコードが原因とは言い切れないですが、こういう
現象につながる危険性のあるものなのでしょうか?

実は上記コードと合わせて同じような効果が得られそうなので下記も同時に記述して
いるのですが、これは良くないでしょうか?

WebForm1.aspx
<meta http-equiv="cache-control" content="no-cache">


話がずれてしまうのですが、WEBアプリケーションのキャッシュに関する設定は
皆様どのようになさっていますか?

闇雲な質問で恐縮ですが、皆様のご意見を頂ければうれしいです。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-10-05 10:36
引用:

上記のコードはキャッシュを残さずに常に最新状態を表示させる効果があることを知り、



いいえ。
http://support.microsoft.com/default.aspx?scid=kb;ja;308375
を読むと、Get または Post パラメータに関係なく、有効期限1秒のページキャッシュが働きます。


[ メッセージ編集済み 編集者: todo 編集日時 2005-10-05 10:37 ]
LOBO
会議室デビュー日: 2004/07/22
投稿数: 11
お住まい・勤務地: 愛知
投稿日時: 2005-10-05 11:26
引用:
いいえ。
http://support.microsoft.com/default.aspx?scid=kb;ja;308375
を読むと、Get または Post パラメータに関係なく、有効期限1秒のページキャッシュが働きます。


1秒≒"保持しない"のと同等と、かなり都合良く解釈してしまっていました。

同じページに異なる端末からの1秒以内での連続するリクエストがあった場合に、キャッシュが働いて後続のリクエストに対して先駆けのリクエストに対するのと同じレスポンスが返ることがある(今回の現象では、あるタイミングから返るようになっていた)ということになるのでしょうか。

@ outputcache の属性をきちんと理解せずに(コピー&ペーストで)使用していたのがいけなかったです。教えていただいたURLのページをよく読んでみます。

スキルアップ/キャリアアップ(JOB@IT)