0

私はデータ収集に使用されるサイトを設計していますが、私が設計している担当者は、ウィンドウが閉じられたりシステムがシャットダウンした場合に備えて、なんらかの形式の冗長性を望んでいます。ユーザーが一定時間切断された場合、またはデータを送信せずにブラウザ ウィンドウ/システムをシャットダウンした場合に、収集されたデータを取得して MYSQL データベースに書き込む方法はありますか?

4

3 に答える 3

2

Web はステートレスで切断されているため、すべてのデータはページ リクエスト間で永続化されます (というか、永続化されるべきです)。

長いデータ入力フォームを含むPHPによって生成されたWebページがあり、ユーザーがブラウザーウィンドウを閉じた場合にそのフォームにデータを保存したいとします-解決策は、クライアントスクリプトを使用することですフォーム内の現在のデータでサーバーをポーリングするか、少なくともウィンドウを閉じるイベントにフックします。

実際の実装は、OP に任されたタスクです。

于 2012-09-18T18:01:45.217 に答える
1

このシナリオを部分的に防止するための最も一般的な手法は、Web アプリがハートビート関数を使用して動作することです。この関数は、一定の間隔で JavaScript を介して起動し、ユーザーがまだログオンしていることを示す要求をサーバーに送信します。場合によっては、フォーム フィールドに既に入力されているデータを送信することもできます。

ajax を利用した自動保存機能と考えてください。

これにはコードに JavaScript を追加する必要がありますが、jquery や mootools などの一般的に使用される JavaScript ライブラリは十分に文書化されており、このようなことを行う方法の多くの例を提供しています。

于 2012-09-18T18:00:48.303 に答える
1

これは、純粋な HTML ページだけでは実行できません。ユーザーがフォームを送信しない場合、サーバーはユーザーが入力した内容を認識できません。

ただし、数秒ごと (または数回のキーストロークまたはクリックごと) に AJAX 呼び出しを行う Javascript をページに配置することもできます。アイデアは、JavaScript が見えないようにフォーム全体を PHP ページに送信し、それを一種の「保留領域」に保存することです。

その後、ユーザーがフォームを送信した場合、保留領域はクリアされる可能性がありますが、送信されなかった場合、保留領域のデータはどこに到達したかを示します。

于 2012-09-18T18:01:28.687 に答える