Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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
Javascript:通过仅使用更改的节点或可能更改的最小节点数更新DOM来保留事件挂钩和状态?_Javascript_Jquery_Dom - Fatal编程技术网

Javascript:通过仅使用更改的节点或可能更改的最小节点数更新DOM来保留事件挂钩和状态?

Javascript:通过仅使用更改的节点或可能更改的最小节点数更新DOM来保留事件挂钩和状态?,javascript,jquery,dom,Javascript,Jquery,Dom,因此,例如,如果我们有一个已经缓冲和播放的flash视频,或者一个可以看到输入、焦点和下拉列表(甚至可以加载某些内容)的自动完成活动,但只有完整文档的HTML和早期HTML的副本,我们如何能在不中断用户状态的情况下将它们合并到live DOM中 通常,我只是编写一个特定的修复程序,在给定div名称的情况下手动指定要更改的正确区域,但对于当前的情况,这不是一个已知的变量(我正在用AJAX编写一个Pythonic MVC框架) 我想改变最小数量的节点,可能是最深的节点 对于某些节点(例如:flash

因此,例如,如果我们有一个已经缓冲和播放的flash视频,或者一个可以看到输入、焦点和下拉列表(甚至可以加载某些内容)的自动完成活动,但只有完整文档的HTML和早期HTML的副本,我们如何能在不中断用户状态的情况下将它们合并到live DOM中

通常,我只是编写一个特定的修复程序,在给定div名称的情况下手动指定要更改的正确区域,但对于当前的情况,这不是一个已知的变量(我正在用AJAX编写一个Pythonic MVC框架)

我想改变最小数量的节点,可能是最深的节点

对于某些节点(例如:flash或autocomplete小部件),可以要求ID,但不可能对所有节点都要求ID,因此在某些情况下,可能可以使用节点位置和类型来比较文档


我知道这不是一个完整的解决方案,但在某些情况下,这将是所需的全部。

您正试图像在通常的AJAX调用中一样部分更新DOM,但您无法修改只发送完整页面响应的服务器响应,因此您正试图将对DOM的更新最小化到仅更改的节点。我是否接近实际问题?此外,如果以上所述是正确的,那么您更改最小节点数(性能、尽可能多地保留状态等)的动机是什么。。?理想情况下,这不应该是社区wiki,因为可能会有多个答案,但无论如何这都不是一个主观问题。可能会更改服务器响应,但我希望控制器逻辑尽可能位于客户端,因为它可以在确实需要重新分配事件等情况下简化进一步的操作。对于基于JS的应用程序来说,这也是一个更通用的解决方案。我认为,如果带宽成为一个问题,初始启动的DOM可能与服务器端不同,但我仍然希望在客户端进行合并。谢谢你的想法(还有维基留言)。