既然你提到爬,我假设有多个页面的可能性。以下代码从一个url数组中加载页面,并将成功加载存储到结果中。它在每个负载上递减remainingUrls(这对于更新进度条可能很有用)(complete
在success
或error
之后调用),并且可以在处理所有页面后调用方法(!remainingUrls)
。
如果这是矫枉过正,只需使用$.ajax
部分并用video.html
替换myUrls[i]
即可。我仅指定了type
,因为我遇到了另一个脚本将默认类型的ajax更改为POST的情况。如果你正在加载像php或aspx这样的动态页面,那么如果你打算在每个会话中多次调用这个属性,cache
属性也可能会有所帮助。
var myUrls = ['video1.html', 'video2.html', 'fail.html'],
results = [],
remainingUrls;
$(document).ready(function() {
remainingUrls = myUrls.length;
for (var i = 0, il = myUrls.length; i < il; i++) {
$.ajax({
url: myUrls[i],
type: 'get', // somebody might override ajax defaults
cache: 'false', // only if you're getting dynamic pages
success: function (data) {
console.log('success');
results.push(data);
},
error: function() {
console.log('fail');
},
complete: function() {
remainingUrls--;
if (!remainingUrls) {
// handle completed crawl
console.log('done');
}
}
});
}
});
雅,你可以使用Ajax肯定...让我问你,你尝试过什么? –
AJAX实际上需要一些“后端”编码;) – abimelex
可以共享代码吗? –