3

1500 行 (PHP によって生成されたマークアップ) を含む非常に大きな HTML テーブルがあります。各行には、5 要素のチェックボックスと 1 つのテキストエリアがあります。

行の例を次に示します。

<tr id="abc123">
    <td>abc123</td>
    <td valign="top"><input name="v1" value=1 type="checkbox"></td>
    <td valign="top"><input name="v2" value=2 type="checkbox"></td>
    <td valign="top"><input name="v3" value=3 type="checkbox"></td>
    <td valign="top"><input name="v4" value=4 type="checkbox"></td>
    <td valign="top"><input name="v5" value=5 type="checkbox"></td>
    <td valign="top"><textarea name="notes"></textarea></td>
    <td valign="top"><input type="submit" name="submit"></td>
    </tr>

他にも列がありますが、これが重要な部分です。

送信ボタンが60秒ごとにチェック/再描画されるようにこれを設定する最良の方法は何ですか? 行/フォームが送信された場合、送信ボタンをリンクに変更する必要があります。

これほど多くの書き込みが一度に発生すると、パフォーマンスが低下するでしょうか? 私たちのサーバーはそれを処理できますが、クライアントの機能 (中級またはそれ以下のデスクトップ マシンを使用している) の方が心配です。

レコードを別々のページに分割する以外に (クライアントはそれに関心がありません)、単一のページでこの多くのフォームを処理するより良い方法はありますか?

更新 ユーザーが更新したい行をクリックして、その行だけをフォームに変換できるようにする方が理にかなっていると思います。行がフォーカスを失った場合、確認ボックスを表示して、不完全なデータを紛失したり送信したりしないようにします。

4

3 に答える 3

2

1)テーブル全体を単一のフォームタグペアの間に配置します。

2)次のような名前タグで各チェックボックスまたはその他の要素を識別します。

checkbox_abc123_1  (value=1)
checkbox_abc123_2  (value=2)
textbox_abc123 (value=foobar)

3)各入力オブジェクトにonClickまたはonBlurイベントを追加します。これがajax呼び出しになります。idタグを「name」として送信し、入力値を「value」として送信します。これらはPOST処理に使用します。

4)POSTページで、入力要素(ヒント:explode('_'、$ name);)を特定し、内容を検証して、SQLテーブルに書き込みます。

投稿ページを使用して、各テーブル行のdivに更新を提供し、フィールドが更新されたことを他のユーザーに通知できます。ただし、これでは他のユーザーの入力オブジェクトを更新する問題は解決されません。

実際のコードの返信が必要な場合でも、これは正しい方向を示しているはずです。

于 2012-10-23T19:07:49.273 に答える
0

クライアントに問題はないはずです。特定の制限が予想される場合を除き、最新のブラウザのほとんどは簡単に対処できるはずです。時間がかかる場合がありますが、問題ありません。

パフォーマンスが心配な場合は、コードがクリーンで適切にネストされていることを確認してください。これは、クライアントがページをレンダリングするのに役立つ、有効な html の厳密なコードと言えます。

タイミングについては、時間を確認したいものに応じて、javascript などを使用する必要があります。JavaScript でタイマーを設定するのは難しくありません。ページの最後にスクリプトをロードして、テーブルの最初のレンダリングを妨げないようにします。

また、サーバーを制御できる場合は、mod_deflate を使用してみてください。制御できない場合で、php を使用している場合は、出力バッファーで zip を使用してください。他のサーバー側言語を使用している場合は、利用可能な圧縮方法を使用してみてください。

アップデート

これは非常に良いアイデアです。これにより、ページ転送の重量とレンダリング時間が大幅に削減されます。ユーザーはそれを高く評価するでしょう。さらに、DOM のトラバーサルもより高速かつ簡単になります。

さよなら

于 2012-10-19T12:43:20.303 に答える
0

プラグインを使用してみてください。ユーザーにとってはjQuery Paginationの方が優れているか、DataTableを試してください。

于 2012-10-19T12:45:32.793 に答える