Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML表格-存储用户表格样式首选项的最佳格式_Html_Xml_Json_Html Table - Fatal编程技术网

HTML表格-存储用户表格样式首选项的最佳格式

HTML表格-存储用户表格样式首选项的最佳格式,html,xml,json,html-table,Html,Xml,Json,Html Table,我有一个网页,它以HTML表格格式向用户提供数据。这个表可能非常复杂和长(比如总共40-50列)。不同的用户会对不同的列感兴趣,因此为了适应,用户可以根据自己的偏好修改表中的列,以便: 改变它们的宽度 改变他们的顺序 把它们藏起来 (每个表都有一个唯一的表id,表中的每列在该表中都有一个唯一的id。) 当然,问题是,下次用户使用网站时,他不想再花时间重新配置他的偏好。所以我的网站需要存储他的偏好(我可以在他的数据库配置文件中这样做) 但是,存储所需数据的最佳方式是什么,以便(使用JavaSc

我有一个网页,它以HTML表格格式向用户提供数据。这个表可能非常复杂和长(比如总共40-50列)。不同的用户会对不同的列感兴趣,因此为了适应,用户可以根据自己的偏好修改表中的列,以便:

  • 改变它们的宽度
  • 改变他们的顺序
  • 把它们藏起来
(每个表都有一个唯一的表id,表中的每列在该表中都有一个唯一的id。)

当然,问题是,下次用户使用网站时,他不想再花时间重新配置他的偏好。所以我的网站需要存储他的偏好(我可以在他的数据库配置文件中这样做)

但是,存储所需数据的最佳方式是什么,以便(使用JavaScript)我可以为用户重新绘制上一次离开时的表格

我可以使用XML或JSON作为存储所需信息的技术平台

但问题是,存储每列的宽度、位置和可见性的最佳格式是什么,这样我的JavaScript就可以用最少的处理重新绘制屏幕

实际上,问题是有时我需要通过引用列ID访问列的数据,有时则需要通过其数字位置访问列的数据。所以有时候一个对象会更好,有时候一个数组会更好

有兴趣知道其他人是如何存储此类数据的

--编辑--

为了重新表述这个问题(并从HTML表的实际情况中抽象出来),我想我真正想知道的是:

如何最好地存储数据,使两者都能访问 它的ID(主键)和数字索引,给定ID的索引 (主键)可以随时间变化。


我会尝试将2-5个宽度定义为css类,并将cell.className、cell.style.display和cell.cellIndex作为col对象存储在所有col的数组中。@dandavis关于列宽-我需要更具体一些,并给用户更多的灵活性。此外,我不认为存储类名比存储表示像素宽度的数字更容易。@dandavis:我同意,我可以将属性存储在数组中。但是,当我需要通过列的ID(而不是索引)访问列时,该怎么办呢。搜索数组中的每个条目以查找列的ID是一项昂贵的开销。这确实是我问题的核心。如何存储数据,以便通过其列位置(即数组)和ID(即对象或关联数组)访问数据;forEach(函数(a){this[a.id]=a;},byId);然后,byId[“xyz”]将是即时的,在开始时只需一次线性时间迭代就可以为您提供两种访问模式。由于对象是通过ref传递的,对byId单元格的更改将影响cols单元格。RE:#1,类呈现到表中的速度将比触摸每一列快得多,并且会导致每一列的表布局重新调整成本高昂。@dandavis如果您将您的建议发布为答案,而不是评论,那么它被接受为正式答案的可能性更大。