首页 > 解决方案 > 在用户可以交互的地方进行实时(动态系统)模拟

问题描述

我想用 HTML 和 Javascript 来模拟一些系统,比如说一个离散的微分方程,比如

x_new = x_old + factor * (bound - x_old)

现在我想给查看 HTML 页面的用户提供实时干预的可能性,例如factor使用一些滑块更改 的值并查看其对动态系统的影响。

现在原则上我知道这样做的基础知识,但我遇到了以下问题:

我需要将模拟速度设置为某个值,并且由于计算(显然)非常快,我需要插入人为的等待时间(这样模拟感觉就像是“实时”的,而不仅仅是在十分之一的时间内快速过去)第二)。同时,我想让用户与所有元素进行交互,而不会由于某些等待过程而使窗口“冻结”。总而言之,我有以下规格:

我确信类似的东西已经存在,所以有人可以向我指出一个“最佳实践”的例子吗?或者,也非常感谢您提供有关如何自己解决问题的提示。谢谢!

标签: javascripthtmluser-controlssimulation

解决方案


对于“滑动”部分,您可以使用一些外部组件,但这在一定程度上取决于您使用的 JavaScript 框架和/或您是否使用 Jquery 或类似的东西。

为了模拟较低的速度,您可以使用 window.setTimeout。这个函数基本上在等待几毫秒后执行另一个函数。

setTimeout(
        function(){
            ///Make something here 
            }, 3000); //execute it after 3000 milliseconds passed.

我在 jsfiddle 中制作了一个非常基本的纯 javascript/html 示例。这应该让你开始。

https://jsfiddle.net/pimboden40/L65te3f2/17/


推荐阅读