基本上,我的想法是做某种形式的“实时 cURL 结果“ 正在生产的系统实时结果例如,当执行每个请求时,我将有一个表,其中包含需要通过 cURL 请求访问的网站列表,其中根据每个 cURL 响应的结果,我需要使用 AJAX 将数据发送回我的页面函数我最初调用了执行此请求循环的文件
<?
foreach($database['table'] as $row) {
curl_init($row['url']);
//the rest of the cURL request etc...
//SEND cURL RESPONSE BACK TO AJAX AFTER EACH ROW!!!
}
<?
然后我希望它返回每个结果cURL当它们发生时做出响应,而不是等待完整的脚本完成后再立即返回它们。
这可能吗?如果是这样我还会使用普通的AJAX要求?
这个怎么样?
你把整个过程分成3个部分
流程1
您向访问数据库的 php 页面发送 ajax 请求,并将 url 列表发送回浏览器页面。 [简单地回显 URL ] [使用分隔符“|”分隔结果网址。]
流程2
上述过程的 ajax 成功处理函数现在将调用一个新的 JavaScript 函数来执行以下操作。
将 url 列表拆分为一个数组。
流程3使用另一个 ajax 函数将 url 列表一一发送到服务器。
这样,一次只处理一个 url,处理完成后立即返回结果
下面是 JavaScript 中函数调用的原型,代码不是真实的,但您可以大致了解它是如何工作的。
function ajaxCall_1()
{
// get url lsit from server
.onSuccess{
process_url(data);
}
}
function process_url(data){
var url_array = data.split('|')
fetch_urls(url_array,0); // sends the first url for processing
}
function fetch_urls(url_array,position){
if(position < url_array.lenght){ // not exceeding the array count
ajax_call2(url_array[position],url_array,position);
}
}
function ajaxCall_2(url,url_array,position)
{
// get url acced by curl and send back the result
.onSuccess{
// do whatever with the data you want
fetch_urls(url_array,position++) // or position+1 // to fetch the next url
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)