现状
好更新单元格时,所以这里的交易:我给自己定下了以提高我的JavaScript知识是一个挑战。这项挑战涉及创建完全类似Excel的电子表格。目前我所拥有的是具有15列和30行表格单元格的表格,它们允许文本输入。就像在Excel中,每个小区都有自己独特的参考ID(A2,F14,G9等):减少滞后于HTML类似Excel的电子表格
_________________
_____|__A__|__B__|__C__|
|__1__|__8__|_____|_____|
|__2__|_100_|__6__|_____|
|__3__|_300_|_____|__5__| etc...
这些细胞将允许活类似于Excel的公式被放在里面,和电子表格将更新本身因此,例如:
_____________________
_____|__________C__________|
|__1__| =(SUM(A1:A3)*C3)+B2 |
Would translate to: var n = ((8+100+300)*5)+6;
的问题
现在,这一切都很好,但这里的问题是:我每次只更新一个小区的时候,我经历得循环和更新所有的细胞,以保证数据是准确的。当上面粗略的例子中只有9个单元格可用时,这不是一个很大的问题,但是我的当前表格有15列和30行......其中450个!
我目前已经设置了它,以便每次浏览器的焦点离开单元时,后面的JavaScript循环并更新每个单元格以确保数据全部正确。当仅有5或6个数据单元格时,这会导致一点滞后,所以我担心在我填充电子表格中的每个单元格时,浏览器都会死在我身上。
我最有可能梦到不可能的事情,但理想情况下我希望能够呈现一个包含数百行和行的更新的电子表格。所以我的两个问题都是:
- 我该怎么做才能防止滞后?
- 甚至可以支持超过15列和30行的公式,而不会在这个过程中打破互联网?
为什么你必须循环遍历每个单元格?该公式仅影响'this'单元格,您可以将其他单元格的值保存在数组中,只在表格单元格值发生更改时才更改该数组。 –
因为例如,如果该公式在C1中,并且D1引用C1,那么D1将需要其值更新。如果我将所有值存储在一个数组中,每次更改单元格时仍然需要更新这些值。 –