既然你提到爬,我假設有多個頁面的可能性。以下代碼從一個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
可以共享代碼嗎? –