0

私はIEでWebアプリを実行しています.IEの右隅にある「X」をクリックしてアプリケーションを閉じると、(javascript window.onunloadによって)Strutsアクションが呼び出され、データベース内のテーブルのレコードが削除されます。しかし、今ではそれが時々間違っていることがわかりました。つまり、閉じたときにレコードが削除されないことがありました。これは、レコードが削除されていないときに struts アクションが呼び出されなかった場合に発生するはずです。

さらに興味深いのは、Fiddler を開くと、閉じるときにレコードが正しく削除されたことです。つまり、毎回失敗することはありません。

どうもありがとう。

4

2 に答える 2

1

「onunload」イベントに依存することはできません。

Web ブラウザーの観点から考えてみてください。開いているすべてのページが「onunload」イベントを処理するまで、30 秒かかるとしても待つ必要があるでしょうか。おそらくブラウザは、開いているすべてのタブに対して「onunload」イベントを確実に発生させますが、完了するのに非常に短い時間しかかかりません。そのため、一貫性のない動作が見られます。

于 2012-06-19T08:12:41.510 に答える
0

本当にこれを行う必要がある場合は、 を参照してくださいonbeforeunload。ただし、その実装はブラウザー間で一貫性がありません: IIRC、opera はそれを実装していません。

于 2012-06-19T08:16:36.117 に答える