cache.manifest를 사용하여 오프라인 사용을 위해 관련 파일을 캐시하는 웹 페이지를 개발 중입니다. 그러나 실제로 인터넷에 연결되어 있는지 감지 할 수 있어야합니다. if (! navigator.onLine)은 어느 정도까지만 작동합니다. 실제로는 그렇지 않을 때 온라인이라고 말합니다. 그 때문에 호출이 성공하면 true를 반환하는 아약스 호출을 작성하려고합니다. 그렇지 않으면 실패합니다. 저는 jQuery에서 마스터가 아닙니다. 그러나 이것은 제가 지금까지 가지고있는 것입니다. 나는 여러 가지 대안을 시도했지만, 항상 "정의되지 않은"결과로 끝납니다.연결을 확인하는 함수를 만들려고 시도합니다.
function checkIfOnline() {
var returned = true;
$.get('services/getObjects.ashx',
{
"get": "heartbeat",
"hash": userHash,
"uid": uid,
"gid": gid
},
function (data) {
if(data.result === "Success") {
alert("Success");
}
console.log(data.result);
},
"json"
)
.done(function() {alert("done");
returned = true;
return returned;})
.fail(function() {alert("fail");
returned = false;
return returned;});
} 내가 뭘 잘못 볼 수 밖에
누구? 경고는 모두 그들이 무엇을하기로되어 있는지 보여줍니다 ... 나는 연결에 따라 "성공"경고를 받고 "완료"또는 "실패"합니다. 지적 된 스레드를 바탕으로
업데이트
, 내 코드
function checkIfOnline() {
return $.ajax({
type: 'GET',
url: 'services/getObjects.ashx',
data:
{
"get": "heartbeat",
"hash": userHash,
"uid": uid,
"gid": gid
}
});
}
function getOnlineStatus() {
checkIfOnline().done(function(result) {
alert("done - "+result.result);
return true;
}).fail(function() {
alert("failed");
return false;
});
}
을 다음과 같이 변경했다하지만 난 여전히 얻을이 성가신 "정의되지 않은"하지만 둘 다 참 또는 거짓 (getOnlineStatus()를 호출 할 때)
http://stackoverflow.com/questions/5316697/jquery-return-data-after-ajax-call-success [AJAX를 호출의 응답을 반환하는 방법?] (HTTP의 –
가능한 중복 : //stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – Mangiucugna
ashx 처리기에서 무엇을 반환합니까? –