Cur*_*tis 2 php ajax jquery curl
基本上,我的想法是做一些形式的" 实时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!!!
}
<?
Run Code Online (Sandbox Code Playgroud)
然后,我希望它在发生时返回每个cURL响应的结果,而不是等待完整脚本完成,然后立即返回它们.
这可能吗?如果是这样,我仍然会使用普通的AJAX请求?
这个怎么样?
你将entie过程分解为3
过程1
您将ajax请求发送到访问数据库的php页面,并将URL列表发送回浏览器页面.[简单地回显Urls] [使用分隔符'|' 分开结果网址.]
过程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
}
}
Run Code Online (Sandbox Code Playgroud)