Gmailと同様の機能を追加する必要があります。この機能では、アイテムのリストのチェックボックスが結果の複数のページにわたって記憶され、離れて結果に戻ったときに記憶されます。私が理解しようとしているのは、これを行うための最良の方法です。私はPHPとおそらくjQueryを使用しています。
私の最初の考えは、セッション内の配列にIDを格納するサーバーへのAJAXコールバックをトリガーする各チェックボックスにonClickを追加することです。アイテムのリストがロードされるたびに、システムは行がチェックされているかどうかを確認し、必要に応じてチェックボックスをオンにします。信頼性を確保するため、サーバーへのリクエストが完了できないかどうか(接続の問題、サーバーエラーなど)を確認した後、チェックボックスをオフにし、リクエストは可能な限り迅速に行われます。
これは、いくつかの項目を除いて、すべて良いように聞こえます。
- すべてチェックしてください:どうなりますか?30(デフォルトのページアイテム)のリクエストをサーバーに送信しますか?または、すべてのonClickを削除し、チェックボックスをオンにして、すべてのIDを使用してサーバーにリクエストを送信してから、onClickを再度追加しますか?または...?すべてのチェックを外すと同様の問題が発生します。
- 速度:何百人ものユーザーが常にチェックとチェックを外していると、問題が発生し始める可能性があります
- ブラウザの速度:ページの読み込み後にonClick with JSを追加するのが最善だと思います。これは、1ページに500以上のアイテムがある場合、1〜2秒かかると思います。すべてをチェックすると、より大きな問題になります。
これまで、ユーザーがページを離れたときにそれを検出する信頼できる方法を見つけていませんでした。信頼できる方法があれば、これがオプションであることがわかり、各ページのアンロードで記録するだけです。
他の解決策やより良い方法はありますか?
編集:Eran Galperinが述べたように、check allメソッドは、各チェックボックスをチェックしてから、すべての行でajax呼び出しを行うだけで済みます。onClickを削除する必要はありません。
また、Event Delegationメソッドは良い考えのように見えます—物事をはるかに簡単にするでしょう。