- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试创建一个网络应用程序来监控系统事件,并且我使用 Flask 作为我的 CMS。更具体地说,我一直在尝试让系统信息在不刷新页面的情况下定期更新。现在,我正在通过以百分比形式检索本地信息来测试网络应用程序。
我创建了一个名为“/refresh”的路由,并以 JSON 格式将本地信息添加到该路由中:
@app.route('/refresh')
def refreshData():
systemInfo = {'cpuload': si.getCPU(), 'memload': si.getMEM(), 'diskload': si.getDiskSpace()}
return jsonify(systemInfo)
数据如下所示:
{
"cpuload": 4.3,
"diskload": 0.7,
"memload": 27.8
}
截至目前,我正在使用 Flask 的变量在我的模板中显示信息,但我想在 HTML 中的脚本中访问 JSON 数据并将其设置为 HTML 元素并经常进行更新。我试过使用 knockout 法,但我也无法让它发挥作用。我的模板如下所示:
<ul id='sysInfo'>
<li>Hostname: {{ sysInfo[0] }}</li>
<li>CPU Core Count: {{ sysInfo[1] }}</li>
<script type='text/javascript' src="http://code.jquery.com/jquery.min.js"></script>
<script type='text/javascript' src="http://knockoutjs.com/downloads/knockout-3.1.0.js">
function update() {
$.getJSON('/refresh', function(data) {
$('#cpu').html(data[cpuload]);
window.setTimeout(update, 5000);
});
}
</script>
<li>
<div id="progress">
<span id="percent">CPU usage: <div id="cpu"></div>%</span>
<div style ='height: 20px; background-color: green; width: {{ cpuLoad }}%;'></div>
</div>
</li>
我知道 HTML 中的脚本并没有多大意义,但基本上我只想使用 getJSON(或其他最好的方法)获取数据,并将该数据放入我的 HTML 中。
最佳答案
更新
看看我做的这个 jsfiddle,它演示了它。只需在需要时将按钮点击替换为您的数据轮询:
全口径,附注解:http://jsfiddle.net/FgbKd/15/
基本功能,正常工作:http://jsfiddle.net/FgbKd/1/
我完成了对 jsfiddle 的更新,使其更加清晰和详细。
结束更新
Knockout 实际上非常适合此操作,但对于初次使用 View 模型并使用新数据刷新它的初学者来说,可能会有些困惑。
function myViewModel (data) {
data = data || {}; var self = this;
self = ko.mapping.fromJS(data);
return self;
}
这是一个自定义 View 模型。这就是 knockout mapping 的作用——获取一个 json 并从中创建 View 模型。否则,您必须自己构建。
现在您需要根据它创建一个对象,并用数据填充它。你会这样做:
var myServerData;
$(document).ready(function(){
myServerData = new myViewModel(data_json_received); //
ko.applyBindings(MyObject); //myServerDataapplies the bindings found in HTML
});
那里。您刚刚获取并创建了 myServerData,这是映射到您的 View 模型的 knockout 对象。这是有趣的东西,可以说是您玩的实际玩具。 MyObject.cpuload
将在这里有一个值。
现在,如果您需要刷新您的 myServerData,因为您进行了另一个 AJAX 调用,并且需要您的 viewmodel 对象来反射(reflect)新数据,您只需:
ko.mapping.fromJS(new_json_data, {}, myServerData);
比如,也许:
$.ajax({
....
success : function(data){
ko.mapping.fromJS(data, {}, myServerData); //refreshes it
}
});
宾果游戏,完成。您的 MyServerData 中包含您的新 json,页面上的任何 HTML 都会立即反射(reflect)出来,例如:
<SPAN data-bind="text: cpuload"></SPAN>
<SPAN data-bind="text: diskload"></SPAN>
<SPAN data-bind="text: memload"></SPAN>
因此,加载 knockout、knockout 映射 JS 文件,使用我向您展示的 View 模型,然后在您获得新数据时使用 mapping.fromJS 行更新您的 View 模型。
关于javascript - 如何在不刷新页面的情况下定时更新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24457893/
我对开发领域有点陌生,我正在开发一个 Android 项目。我正在尝试使用手机相机闪光灯。我试图让它以重复的 Action 闪烁。下面是我的 .java 文件中的一个剪辑。 public vo
我正在制作一个 ios 应用程序,它是一种诗集。我想要的功能之一是定时“阅读”,因此一首诗中的单词出现的时间与我阅读时的时间相同。所以我有一个数组,里面有诗中的词,还有延迟。 现在我想遍历单词,在屏幕
这个问题在这里已经有了答案: Loop doesn't see value changed by other thread without a print statement (1 个回答) 关闭
我如何才能使用计时器?例如,我想显示某个文本 10 秒,然后我想在剩余时间内显示不同的文本。 谢谢 凯文 最佳答案 延迟操作的最简单方法是使用 NSObject 的 PerformSelector:w
我在这里的措辞上有点困难,但要点是我使用返回一个对象的 Promise.race (如下所示)。大多数时候,至少有一些 promise 会崩溃,但这是故意的。这仅意味着未找到产品。为了避免 Promi
我正在寻找定时 JDialog,它会在指定时间过后消失,并且找到的代码运行正常。 JFrame f = new JFrame(); final JDia
我试图让选择器在不同的时间轮换,我想我会尝试一个简单的 if/else 语句,让第一个选择器在 3 秒后轮换,接下来的选择器在 30 秒后轮换。然而,它只是每三秒旋转一次。如果我想出了如何完成这项工作
这个问题已经有答案了: How to implement a timer in c? (7 个回答) Creating a Timer in C (2 个回答) 已关闭 9 年前。 我需要根据用户输入
我有一个在我文档的 head 标签中调用的 javascript 文件,每隔 30 秒,我希望重新加载这个 javascript 文件。 我对此做了一些研究,似乎它在提取本地存储的文件副本或跨浏览器问
我想看看运行 bash 函数需要多长时间。在做了一些研究之后,我想出了这种使用子 shell 的方法: function test-function() { time ( rs
我正在使用 jQuery,并且我有一个 aAax 请求,如下所示; $.ajax({ type: 'POST', url: 'test.php',
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我想为系统的每笔交易制定一个程序任务,以预留15分钟的等待时间。如果超过15分钟,程序将改变状态/状态。如果状态在 15 分钟内发生变化,则结束任务。我可以应用更多更好的代码吗?比如Wait/Slee
我正在制作一个打字速度测试程序,它有一个循环需要运行 60 秒然后退出并显示结果。我读过其他关于为 C++ 程序计时的地方,但我的研究没有定论。该程序正在运行 (llbd),我希望有人有解决方案/更好
我试图在一个简单的游戏中每 0.5 - 2 秒随机创建一个障碍。我已经有了创建障碍的功能,但我无法为实例化计时。我试过研究这个,但我还没有想出任何相关的东西。你们能帮帮我吗? 最佳答案 您可以使用 p
我有以下测试,在运行特别长的 fib 断言时不会失败。 未正确失败的测试 #!/usr/env/bin python2.7 import unittest from fib import fib fr
我想知道这是否可行。有没有一种方法可以使用 PHP 每 24 小时更新一次行的值。为什么?我正在创建一个使用在线货币(称为 Yads)的 child 网站。 Row 的值是用户拥有的 Yad 数量。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
有 Cron API 这样的东西吗? 我的意思是,是否有一种编程方式可以在不影响 Cron 的情况下添加/删除 Cron 作业? 最佳答案 UNIX cron 的 API 是文件系统。有一个用于安装/
1、SpringBoot:集成Swagger终极版 学习目标: 了解Swagger的概念及作用 掌握在项目中集成Swagger自动生成API文档 1.1、Sw
我是一名优秀的程序员,十分优秀!