问题
我正在使用以下代码来不断保持我的 UI 准确。我不喜欢轻微的一秒钟延迟。它目前只返回一个小的 JSON 文件,其中只有几个关于 UI 更新和页面其他重要信息的键。
到目前为止我的脚本:
function parseDynamicData(ard) {
if (ard['details']['enabled'] == 'true' && ard['song']['art'] != 'undefined');
{
if (document.location.toString().indexOf('#offline') != -1)
document.location = '/#tracks';
$('#track-title').html(htmlDecode(ard['song']['title']));
$('#track-artist').html(htmlDecode(ard['song']['artist']));
$('#track-album').html(htmlDecode(ard['song']['album']));
$('#track-art').attr('src', htmlDecode(ard['song']['art']));
if (htmlDecode(ard['details']['playing']) == 'true') {
$('#control-pauseplay').html('Pause');
$('#control-pauseplay').attr('href', '/track?proc=2');
} else {
$('#control-pauseplay').html('Play');
$('#control-pauseplay').attr('href', '/track?proc=3');
}
}
}
function updateLoop() {
$.ajax({
url: '/jtrack',
dataType: 'json',
cache: false,
async: false,
success: parseDynamicData,
error: function (xhr) {
document.location = '#offline';
},
complete: function (x, y) {
setTimeout(updateLoop, 3000);
}
});
}
$(document).ready(function () {
setTimeout(updateLoop, 1500);
});
我的问题
我可以多快安全地提出这些请求?我在移动设备(例如 iPhone 或 Android)上运行它,所以我认为我不需要经常这样做。他们是更好的方法吗?如果是这样,我如何使用 .net HttpListener 服务器来实现这一点?
主要警告:
这是我正在做的一个项目的一部分。问题是这个连接的服务器是我用VB.net 编写的 HttpServer。我不是这方面最精通的人,但这个服务器是专门为我的项目设计的(在这个领域没有其他解决方案真的足够,因为 Http 服务器是应用程序/项目本身的主要方面之一)。
所以请记住:
这是由您自己的计算机托管的本地服务器。一次只能真正连接一两个设备(通过 WiFi 连接到主机的 LAN)。
哦,还有...
对于所有担心让他们的数据使用量最大化的“悲伤熊猫”(@Dave Newton:P)……别担心。这仅在您的移动设备通过 WiFi 连接时使用。否则它甚至不会工作,因为它必须连接到运行应用程序的人的 LAN(除非有人端口转发它,但我认为没有人愿意这样做)。