我有一个函数从两个位置提取数据,并将返回的内容放在显示给用户的模式对话框中.
这两个请求都是异步的,因为它们是跨域的.问题在于我不希望在两个请求都完成加载之前显示模态.在加载模态之前,如何检查以确保两个请求都已完成?
我已经尝试将openModal函数放在第二个请求的成功处理程序中,并且在第一个请求在第二个请求之前完成加载时有效,但有时情况并非如此.
这是我的代码的副本:
function loadData(id) {
$.ajax({
type: 'GET',
url: 'https://someurl.com/v1.0/controller1/' + id,
dataType: 'jsonp',
success: function(data) {
// Do some stuff to the data
}
});
$.ajax({
type: 'GET',
url: 'https://someurl.com/v1.0/controller2/' + id,
dataType: 'jsonp',
success: function(data) {
// Do some stuff to the data
openModal();
}
});
}
function openModal() {
// Open the modal
}
Run Code Online (Sandbox Code Playgroud) 我有一个PHP脚本,它在数据库中查询要完成的作业列表,并根据它在数据库中找到的内容(基本上是一个进程队列)触发其他PHP脚本.
队列运行程序脚本执行的某些脚本可能需要30秒左右才能完成运行(生成PDF,调整图像大小等).
问题是shell_exec()在队列中,runner脚本调用处理脚本,但是不等待它们完成,导致队列没有完成.
队列转轮脚本:
#!/usr/bin/php
<?php
// Loop through database and find jobs to be done
shell_exec(sprintf("/root/scripts/%s.php", $row['jobName']));
?>
Run Code Online (Sandbox Code Playgroud)
工作脚本:
#!/usr/bin/php
<?php
shell_exec("/usr/bin/htmldoc -t pdf --webpage test.html > test.pdf");
// Update database to mark job as completed
?>
Run Code Online (Sandbox Code Playgroud)
直接从命令行运行作业脚本,并创建PDF.
有想法该怎么解决这个吗?或者更好的方法来运行进程队列?
我正在尝试向RESTful Web服务发出PUT请求,但是,似乎jQuery 1.5确实响应了"type"设置中的任何更改.无论"类型"中的值如何,请求都将作为GET发送.在jQuery 1.4中,这不是问题.
这是我的代码:
$.ajax({
type: "PUT",
url: "https://api.somesite.com/v1.0/people/" + individualID + "/",
dataType: "jsonp",
data: $("#editProfile").serializeArray(),
cache: "false",
success: function(data,textStatus,jqXHR) {
$.modal.close();
},
error: function(jqXHR,textStatus,errorThrown) {
alert("Error!");
}
});
Run Code Online (Sandbox Code Playgroud)