阿贾克斯或别的东西 - 用含有表格的每一行1500行的表?(1500 row table with

2019-08-01 15:52发布

我有一个包含1500行的非常大的HTML表格(由PHP产生标记)。 每一行具有5元素复选框和一个文本区域。

下面是一个例子行:

<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秒重绘? 如果该行/表已提交,提交按钮将需要改变的链接。

将具有所有发生的许多写入一次导致可怕的表现? 我们的服务器可以处理它,但我更关心的是客户端功能(谁正在使用中级或更糟糕的台式机)。

除了记录分手到单独的网页(客户端在不感兴趣),是否有单页上处理这个多种形式更好的办法?

更新我想它可能会更有意义,让用户点击他们想要更新的行,那么这将仅该行转换为表格。 如果某行失去焦点,我会显示一个confim框,以便它们不会丢失或提交不完整的数据。

Answer 1:

1)把一个表单标签对之间的整个表。

2)确定每个复选框或其他元素使用一个名称标签,看起来是这样的:

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

3)加入一个onClick或onBlur事件到每个输入对象。 这将是你的Ajax调用。 发送ID标签为“名”和输入值作为“价值”。 您可以使用这些后处理。

4)在您的文章页面上,确定您的输入元素(提示:爆炸(“_”,$名);),验证内容,并写信给你的SQL表。

您可以使用您的文章页面上提供的更新,在每个表行宣布,以该字段更新其他用户一个div。 这不会解决更新其他用户的输入对象的问题,但是。

如果你需要实际的编码回答回来了,但是这应该指向你在正确的方向。



Answer 2:

应该有客户端没有问题,除非你希望具体的限制,大部分现代浏览器应该很容易与应对。 这可能需要一些时间,但没有问题。

如果你担心性能,只是要确保你的代码是干净的,正确嵌套,我们可以说,有效的HTML代码严格,这将有助于客户端渲染页面。

关于时间,你将不得不使用JavaScript或类似,这取决于你喜欢什么检查的时间; 它不是很难在JavaScript设置一个计时器。 在页面的最后加载脚本,以便它不与表的初始渲染干扰。

另外,如果你能控制的服务器,尝试使用mod_deflate模块,如果你不能和你正在使用PHP,请使用您的输出缓冲压缩,如果你使用的任何其他服务器端语言,尝试使用任何可用的压缩方法。

更新

这是一个非常不错的主意,它会降低页面传送和渲染时间很多的重量; 你的用户将认识到,再加上DOM的遍历也将更快,更容易

再见



Answer 3:

尝试使用插件是更好地为用户的jQuery分页或尝试数据表



文章来源: 1500 row table with each row containing a form - Ajax or something else?