我有一个用例,我希望我的第一个get服务请求应该立即发生(同步方式)。 基于这个用途,我将展示一些信息。然后我需要异步轮询相同的请求(ajax)。 我有针对asynchronousm部分的解决方案。但是第一个操作,我怎么能在jquery中实现这一点。 两者都是相同的要求。建议是否有其他方法来实现这一点。
(function poll() {
setTimeout(function() {
$.ajax({
url: "server script path",
type: "GET",
success: function(data) {
console.log("polling"+data);
if(data.is_running === false){
console.log("stop polling");
$("#overlay").show();
}
},
dataType: "json",
complete: poll,
timeout: 2000
})
}, 50000);
})();
谢谢,
答案 0 :(得分:1)
INSERT INTO `database`.`databasetable` (
`iUserId` ,
`eUserType` ,
`eBalType` ,
`fCreditAmount` ,
`fDebitAmount` ,
`dEntryDate` ,
`dValueDate` ,
`vDescritption` ,
`vBalTypeCode` ,
`iRefId` ,
`vRefTypeCode` ,
`iAddedUserId` ,
`eAddedUserType` ,
`vProcessDescription` ,
`eBalanceStatus`
)
(
SELECT id as iUserId,
'C' as eUserType,
'C' as eBalType,
'5.00' as fCreditAmount,
'0.00' as fDebitAmount,
'2016-02-04 21:11:54' as dEntryDate,
'2016-02-04' as dValueDate,
'manual deposit' as vDescritption,
'D' as vBalTypeCode,
'0' as iRefId,
'CR' as vRefTypeCode,
'0' as iAddedUserId,
'S' as eAddedUserType,
'manual deposit' as vProcessDescription,
'A' as eBalanceStatus
FROM user
)
答案 1 :(得分:0)
您需要做的就是在第一次请求中将async
属性设置为false
:
$.ajax({
url: "your url here",
type: "GET",
success: onSuccess,
dataType: "json",
async: false,
complete: poll //this will start your polling
//Everything else
});
您可以阅读有关$.ajax
及其属性的文档here。将async设置为false将使其成为同步请求。
此外,如果您想轮询服务器,您应该使用setInterval
代替setTimeout
,如评论中提到的Eric Guan。
编辑:第二个想法,我看到你在ajax请求完成时调用poll
。这可能比setInterval
更好,具体取决于您的使用案例。