問題
次のコードを使用して、UIを常に正確に保ちます。しかし、私はわずかな1秒の遅延が嫌いです。現在、UIの更新やページのその他の重要な情報に関するいくつかのキーのみを含む小さなJSONファイルのみが返されます。
これまでの私のスクリプト:
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サーバーはアプリケーション/プロジェクト自体の主要な側面の1つであるため、この分野では他のソリューションでは十分ではありません)。
だから心に留めておいてください:
これは、自分のコンピューターによってホストされているローカルサーバーです。一度に実際に接続できるのは1つまたは2つのデバイスのみです(WiFi経由でホストのLANに接続します)。
ああそして...
「悲しいパンダ」(@Dave Newton:P)は、データ使用量が最大になることを心配しています...心配しないでください。これは、モバイルデバイスがWiFi経由で接続されている場合にのみ使用されます。アプリケーションを実行している人のLANに接続する必要があるため、それ以外の場合でも機能しません(誰かがポート転送した場合を除きますが、誰かがそれを望んでいる理由はわかりません)。