Đây là vấn đề của tôi. Tôi có chức năng này để kiểm tra máy chủ proxy.Tại sao cuộc gọi hàm của tôi nên được sắp xếp theo setTimeout được thực thi ngay lập tức?
function crawl() {
var oldstatus = document.getElementById('status').innerHTML;
document.getElementById('status').innerHTML = oldstatus + "Crawler Started...<br />";
var url = document.getElementById('url').value;
var proxys = document.getElementById('proxys').value.replace(/\n/g,',');
var proxys = proxys.split(",");
for (proxy in proxys) {
var proxytimeout = proxy*10000;
setTimeout(doRequest(url,proxys[proxy]), proxytimeout);
}
}
Tôi muốn hàm 'doRequest()' được gọi trong khoảng 10 giây nhưng ngay cả với hàm setTimeout(), hàm được gọi ngay lập tức.
Bất kỳ ý tưởng nào đều được chào đón, cảm ơn.
PS: Ngay cả khi tôi đặt giá trị tùy ý cho 'proxytimout', nó không có hiệu lực.
Đúng nếu tôi sai, nhưng vì điều này xảy ra bên trong một vòng lặp, phương pháp thứ hai bạn đã đưa ra sẽ không hoạt động. Giá trị của 'proxy' sẽ thay đổi vì không có đóng cửa nào được tạo. – nickf
@nickf: Tôi chuẩn bị nói điều đó. Ngoài ra, tùy chọn thứ ba vi phạm 'eval là cái ác'. – SLaks
@nickf, bạn là sự thật, tôi đã bỏ qua điểm đó. Tôi đã cập nhật câu trả lời của mình. –