1

私たちの CMS には、ユーザーがサイト階層を操作できるようにする場所があります (ページの移動、ページの追加と削除など)。

ドラッグ アンド ドロップを使用して、ページの移動を実装します。

各移動は、DB に保存され、多数の HTML ファイルにエクスポートされる必要があります。すべての動きでそれを行うと、ユーザーの速度が低下します。したがって、ユーザーがページを離れるときのみ、変更を HTML ファイルにエクスポートして、各変更を DB に保存して、ユーザーが好きなだけ遊んでもらうことが望ましいと考えました。

変更をコミットする準備ができたら、ユーザーに「公開」ボタンをクリックさせることを考えましたが、ユーザーがそれを忘れてしまうのではないかと心配しています。新しい場所 - アクションが完了しました。ボタンのもう 1 つの問題は、サイトの他の部分の動作と矛盾していることです (たとえば、ユーザーがページ内でテキストを移動すると、更新する HTML ファイルが 1 つしかないため、変更が自動的に保存されます)。

では、ページを離れたときにユーザーの変更を自動的に保存するにはどうすればよいでしょうか?

4

4 に答える 4

3

ユーザーが javascript を使用してページを離れたときに警告する必要があります。

http://www.siafoo.net/article/67から:

最新のブラウザーには、window.beforeunload というイベントがあり、ページのアンロードを引き起こすイベントが発生したときに発生します。これには、リンクをクリックする、フォームを送信する、またはタブまたはウィンドウを閉じることが含まれます。

ほとんどのブラウザーで動作するサンプルについては、このページにアクセスしてください。

http://www.webreference.com/dhtml/diner/beforeunload/bunload4.html

最初にユーザーに確認せずにページを保存するのは悪い習慣だと思います。それは通常の Web ページの仕組みではありません。

サンプル:

<SCRIPT LANGUAGE="JavaScript1.2" TYPE="text/javascript">
<!--
function unloadMess(){
    mess = "Wait! You haven't finished."
    return mess;
}

function setBunload(on){
    window.onbeforeunload = (on) ? unloadMess : null;
}

setBunload(true);
//-->
</SCRIPT>
于 2008-09-25T11:43:12.930 に答える
1

私が考える最も簡単な方法は、ユーザーが Ajax を使用して項目を移動するたびにページ情報を保存することです (たとえば、UpdatePanel、onUpdated イベントを使用して、ユーザーのページ構成を更新するスクリプトを起動させます。

あるいは、.Net の WebParts 実装は、プログラマーの介入なしにこれを自動的に行います (ストレージ エンジンを変更しない限り、デフォルトでローカル mdb を使用します。

于 2008-09-25T11:44:54.967 に答える
1

「公開」チェックボックス/ボタンを使用し、ユーザーが別の場所に移動するような方法でページを操作した場合、そのボックスがチェックされていない/ボタンがクリックされていない場合は、公開するかどうかを尋ねます。ユーザーにプロンプ​​トを表示したくない、または表示できないアクション (ブラウザーを閉じる、お気に入りメニューにアクセスするなど) があることに注意してください。

于 2008-09-25T11:47:52.683 に答える
1

公開などのボタンをクリックするように強制します。それは「訓練」の問題です。

彼らが去ったときに変更を自動的に保存すると、他の影響が生じる可能性があります。たとえば、ユーザーがレコードを開いて操作し、それを変更するつもりがない場合、Word 文書や Excel などのように、レコードを閉じます。. あなたのサイトにそのモデルを模倣してもらいます。

また、Web は非接続環境であり、すべての Web アプリケーションが Windows アプリケーションのように実行される必要はないことも覚えておく必要があります。

ユーザーが公開/保存ボタンをクリックしない場合、変更は保存されません。

于 2008-09-25T12:39:51.263 に答える