これは、プロトタイプ/実験用の非常に小さなアプリケーションです。デバイスはバッテリ寿命を節約するために頻繁にスリープ状態になり、ユーザーはローカル Web ページにアクセスしてボタンを押し、デバイスで何かを変更します。これにより、以下の JavaScript コードを使用して POST がデバイスに送信されます。
ユーザーがボタンを押したときにデバイスがスリープ状態になる可能性があるため、POST が失敗します。これが悪い習慣であることはわかっていますが、基本的には、応答を受信するまで POST を維持する (用語を正しく使用しているかどうかさえわかりません) またはデータを送信する Web ページが必要です。while ループを試しましたが、一度しか送信されませんでした。間違った場所に置いたのかもしれません。
function execPOST(url, postData, callback) {
var postRequest = newAjaxRequest();
postRequest.onreadystatechange = function() {
if (postRequest.readyState == 4) {
if (postRequest.error) {
callback(1, "Request had an error.");
alert('postRequest Error');
} else {
var status;
try {
status = postRequest.status;
} catch (err) {
callback(1, "Failed to get HTTP status from server.");
return;
}
if (status == 200 || status == 0) {
callback(0, postRequest.responseText);
} else {
callback(1, "POST: Unexpected HTTP Status: "
+ postRequest.status);
alert('POST: Unexpected HTTP Status: '
+ postRequest.status);
}
}
}
}
if (postRequest.overrideMimeType){
postRequest.overrideMimeType("text/xml");
}
postRequest.open("POST", url, false);
//I tried adding this while loop hoping it would keep sending but it only sent once
while (postRequest.readystate != 4)
{
setTimeout('',2000);
postRequest.send(postData);
}
return postRequest;
}