0

クライアントが特定のフィールドを編集できる仕事用のアプリをコーディングしようとしています。編集をクリックすると、コードは編集対象のデータをロックします。保存をクリックすると、データのロックが解除されます。しかし、他の場所をクリックしたり、別のページやサイトに移動したり、ブラウザーを閉じたりしたときに、データのロックを解除できるかどうかを判断するのに苦労しています.

ユーザーが編集ページを離れたかどうかを判断する良い方法は何ですか?

(C# .NET 3.5 と JQuery と SQL Server 2005 DB を使用しています)。

4

3 に答える 3

2

本当に悲観的ロックを使用する必要がある場合は、Session_End にチェックを追加して、このユーザーが現在のセッションで設定したすべてのロックを解除できます。ユーザーがブラウザー ウィンドウを閉じたり、別のサイトに移動した場合にセッションを終了するには、onUserExit jQuery プラグインを使用します。例を次に示します。

https://stackoverflow.com/a/10481972/351383

于 2012-05-07T22:21:46.933 に答える
2

htmlタグの「onunload」イベントを利用できます。このイベントは、ページが X ボタンを使用して閉じられたとき、ページがリダイレクトされたときに発生します (この場合、ユーザーは編集をクリックし、保存せずに別のリンクに移動します。)

お役に立てれば!!

于 2012-11-08T00:16:32.737 に答える
0

あなたの質問は、「ユーザーが [保存] をクリックしてフィールドのロックを解除せずに編集ページを放棄したかどうかを判断する良い方法は何ですか?」と理解されています。

しかし、他の場所をクリックしたり、別のページやサイトに移動したり、ブラウザーを閉じたりしたときに、データのロックを解除できるかどうかを判断するのに苦労しています.

誰かが同じアプリケーションから別のページを見るすべてのシナリオは、おそらく何かを確認するために、同じセッション内の別のウィンドウを意味する可能性があります。ユーザーが編集を送信できるウィンドウを開いている可能性があるため、ロック解除をトリガーしたくありません。

ユーザーがページを離れるその他のシナリオでは、onUserExit を使用できます。

ただし、このリストから、「ユーザーが Web ページを開いたままランチに行く」というシナリオを省略します。これが悲観的ロックが問題となる理由です。

したがって、この問題を「ユーザーが [編集] をクリックしたが、妥当な制限時間内に修正して保存できなかった」と言い換えます。

基本的に、ロックはある時点で期限切れになるはずです。

[編集] をクリックすると、保存ロックが作動し、タイマー (5 分?) が開始されます。これは画面にも表示されます。(これらを同期させることが問題になる場合は、クライアント側のタイマーをサーバー側のタイマーよりも短くしてください)。ユーザーはこの時間内に変更を行い、[保存] をクリックする必要があります。おそらく、延長ボタンを追加して時間を延長できます。

原則は、誰かが放置したということではなく、誰かが放置しすぎたことを判断する必要があるということです。また、[編集] をクリックしたユーザーがすぐに編集を行うことを期待していることも示します。

ロックの有効期限が切れたフィールドのロックを解除するには、システムをコーディングする必要があります。

これには、そのような編集ロックを要求する人々にとって、カウントダウンが「クール」に見えるという利点があります。

于 2012-05-07T23:02:42.510 に答える