【发布时间】:2013-01-05 02:40:04
【问题描述】:
我正在使用 simplexml_load_file() 函数加载 Twitter 成员 XML。
这很好用,我可以解析 XML,但有时需要很多时间 加载 XML 或 XML 不加载因为 Twitter。而这不仅 因为来自 Twitter 的 150 个请求限制。
这就是为什么我想知道是否可以中止 Twitter XML 文件 30秒后加载时加载不成功?
谢谢!
【问题讨论】:
我正在使用 simplexml_load_file() 函数加载 Twitter 成员 XML。
这很好用,我可以解析 XML,但有时需要很多时间 加载 XML 或 XML 不加载因为 Twitter。而这不仅 因为来自 Twitter 的 150 个请求限制。
这就是为什么我想知道是否可以中止 Twitter XML 文件 30秒后加载时加载不成功?
谢谢!
【问题讨论】:
使用simplexml_load_file(),我认为您无能为力。
但是,当使用 cURL 检索 URL 的内容时,您可以指定超时:
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_TIMEOUT, 10); // <- Timeout in Seconds
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$xml = curl_exec($curl);
curl_close($curl);
【讨论】:
我首先想到的是使用 AJAX。创建对执行加载功能的 PHP 脚本的调用,如果需要超过 30 秒,则让 JavaScript 中止 AJAX 调用。
$.ajax({'complete': callbackFunction, 'url': 'foo/bar/', 'timeout': 5000, 'error': errorCallback});
您正在寻找timeout 和error。超时(以 ms 为单位)中止脚本并调用 error 函数,您可以使用该函数返回操作已中止(或您想要对其执行的任何操作)的消息。
【讨论】: