Điều này nghe có vẻ giống như một câu hỏi thực sự noob-ish, nhưng đó là bởi vì tôi khá mới ở JS. Tôi không thể tìm thấy bất kỳ thông tin nào về điều này ở bất cứ nơi đâu, vì vậy tôi nghĩ rằng tôi muốn hỏi cộng đồng.Vòng lặp vô hạn JavaScript?
Làm cách nào để tạo vòng lặp vô hạn trong JavaScript? Tôi đang cố gắng tạo một trình chiếu, mà tôi đã làm việc, nhưng tôi không thể lặp lại. Tôi thậm chí không thể làm cho nó lặp lại hai lần.
Mã Tôi đang sử dụng ngay bây giờ là
window.onload = function start() {
slide();
}
function slide() {
var num = 0;
for (num=0;num<=10;num++) {
setTimeout("document.getElementById('container').style.marginLeft='-600px'",3000);
setTimeout("document.getElementById('container').style.marginLeft='-1200px'",6000);
setTimeout("document.getElementById('container').style.marginLeft='-1800px'",9000);
setTimeout("document.getElementById('container').style.marginLeft='0px'",12000);
}
}
Nếu không có sự cho điều trong đó, nó đi qua một lần. Khi tôi đưa vào một, nó hoặc làm cho Firefox khóa lên, hoặc chỉ vòng một lần. Tôi chắc chắn đây là một điều thực sự đơn giản để làm, và thậm chí nếu nó phải là vòng lặp 1.000.000 lần hoặc một cái gì đó thay vì vô hạn, mà sẽ làm việc tốt cho tôi.
Ngoài ra, tôi không muốn sử dụng jQuery hoặc thứ gì đó mà người khác đã tạo. Tôi đang học JavaScript, và đây là một phần để giúp tôi học hỏi, và một phần vì tôi đang cố gắng tạo ra càng nhiều hệ thống dựa trên HTML5 càng tốt.
EDIT: Tôi nghĩ lý do nó đóng băng là bởi vì nó thực hiện mã tất cả cùng một lúc, và sau đó chỉ lưu trữ nó trong bộ nhớ cache hoặc một cái gì đó. Những gì tôi muốn nó làm là đi qua điều này một lần, sau đó bắt đầu lại từ đầu, đó là những gì tôi đã luôn luôn nghĩ vòng ở đâu. Trong kịch bản lệnh "batch" (lệnh nhắc), điều này có thể được thực hiện với lệnh "GOTO
". Tôi không biết liệu JS có tương đương hay không, nhưng đó thực sự là mục tiêu của tôi.
Điều gì không sử dụng jQuery phải làm với việc sử dụng HTML5? – Ender
jQuery không giúp bạn học Javascript. Nó ở đó để giúp ẩn các khác biệt (xa quá nhiều) trong mọi triển khai javascript của mỗi trình duyệt. Tin tôi đi, bạn vẫn sẽ bị bẩn tay với Javascript, ngay cả với sự giúp đỡ của jquery. –
Ồ, và hầu hết các trình duyệt không cho phép bạn chạy một vòng lặp vô hạn trong javascript. Sẽ rất dễ dàng để thực hiện các cuộc tấn công DoS đối với mọi người nếu họ làm vậy. Sau một thời gian/số lần hoạt động nhất định, họ sẽ bật lên các cuộc đối thoại cảnh báo rằng tập lệnh có thể bị lỗi và cho phép người dùng hủy bỏ tập lệnh. –