我有几个(约30个)异步调用返回数据(每个调用大约25条记录),我想按特定顺序显示这些数据。
目前,页面等待所有内容加载完成,对单个内部数组进行排序,然后添加DOM元素(每个数据项应用于HTML模板/字符串,然后将其连接起来并一次性添加到父元素的innerHTML中)。
我希望数据在每个数据集返回时插入...但这意味着我需要一种不同的方法来处理排序/排序。
我考虑过以下方法:
- 理想情况下,在某种B-Tree中镜像DOM,以便INSERT操作只需遍历树查找要插入的正确元素,然后insertBefore/insertAfter...由于我还没有看到任何库来解决这个需求,所以似乎我最终会编写一些代码。 - 手动迭代DOM,寻找要插入的元素...相对而言,这种方法似乎非常缓慢。 - 在加载每个数据集后,仅使用jQuery.sort(fn)...最好是hacky(考虑到它将运行的次数和DOM操作的数量),但从实现代码的角度来看,这是最容易的方法,因为只需5行代码。 - 我考虑了一些类似于缓冲队列的方法,用于异步返回和DOM操作之间的处理,但是我对JS和线程的许多方面都不了解,因此对这种方法感到不太舒适。
我喜欢直接插入排序槽的想法,但我知道DOM操作可能会“缓慢”(取决于如何执行等因素-而我绝不是JS大师-因此在这里提问)。缓冲队列与单独的读者/DOM处理似乎可以提供响应性和DOM操作疼痛之间的合理折衷,但这对我来说仅仅是理论上的...总之,如果它比它值得的麻烦还要多,我要么保持原样,要么采取jQ.sort DOM的懒惰路线。
非常感谢您的专业建议 :)
目前,页面等待所有内容加载完成,对单个内部数组进行排序,然后添加DOM元素(每个数据项应用于HTML模板/字符串,然后将其连接起来并一次性添加到父元素的innerHTML中)。
我希望数据在每个数据集返回时插入...但这意味着我需要一种不同的方法来处理排序/排序。
我考虑过以下方法:
- 理想情况下,在某种B-Tree中镜像DOM,以便INSERT操作只需遍历树查找要插入的正确元素,然后insertBefore/insertAfter...由于我还没有看到任何库来解决这个需求,所以似乎我最终会编写一些代码。 - 手动迭代DOM,寻找要插入的元素...相对而言,这种方法似乎非常缓慢。 - 在加载每个数据集后,仅使用jQuery.sort(fn)...最好是hacky(考虑到它将运行的次数和DOM操作的数量),但从实现代码的角度来看,这是最容易的方法,因为只需5行代码。 - 我考虑了一些类似于缓冲队列的方法,用于异步返回和DOM操作之间的处理,但是我对JS和线程的许多方面都不了解,因此对这种方法感到不太舒适。
我喜欢直接插入排序槽的想法,但我知道DOM操作可能会“缓慢”(取决于如何执行等因素-而我绝不是JS大师-因此在这里提问)。缓冲队列与单独的读者/DOM处理似乎可以提供响应性和DOM操作疼痛之间的合理折衷,但这对我来说仅仅是理论上的...总之,如果它比它值得的麻烦还要多,我要么保持原样,要么采取jQ.sort DOM的懒惰路线。
非常感谢您的专业建议 :)