Bất cứ ai cũng có thể cho tôi biết cách kích hoạt hai (hoặc nhiều) hàm JavaScript AJAX song song?Làm thế nào để kích hoạt hai hàm JavaScript song song?
Trả lời
Đây có phải là những gì bạn đang tìm kiếm không?
setTimeout('JsFunction1(val);', 0);
setTimeout('JsFunction2(val);', 0);
Điều này sẽ không thực thi chúng song song. JsFunction1 sẽ luôn luôn thực hiện đầu tiên, không có vấn đề gì. setTimeout 0 chỉ cần đẩy mã vào cuối stack thực thi. –
bạn không thể nhận bất kỳ thứ gì trong JS thực thi tại cùng một thời điểm EXACT nhưng bạn có thể thực thi chúng theo cách "không đồng bộ" (tôi biết JS được đơn luồng nên nó không thực sự không đồng bộ, hoặc ít nhất nó không phải là cho đến khi Chrome xuất hiện). WTF là lên với bạn trolling xung quanh cho bài đăng này hơn hai tuần sau đó để làm cho một bình luận ngẫu nhiên như thế? Ai có loại thời gian đó? – used2could
Điều này là không thể. Javascript chỉ có thể làm việc trong một chuỗi duy nhất và không có cách nào để thực sự có hai hàm chạy song song. Bạn cần thực hiện một cuộc gọi và một cuộc gọi khác. Các callbacks trong số này sẽ được gọi (không nhất thiết phải theo cùng thứ tự với các phương thức gọi), khi dữ liệu đã được trả về hoặc một lỗi/timeout xảy ra. Chỉ khi một lần gọi lại hoàn thành, thì lần gọi lại thứ hai sẽ được phép chạy.
Cũng nên nhớ rằng các trình duyệt hạn chế số lượng cuộc gọi ajax hoạt động. Vì vậy, nếu bạn cố gắng thực hiện quá nhiều cuộc gọi ajax, người ta có thể chờ (chặn tất cả mã javascript) cho các cuộc gọi khác để hoàn thành.
Còn http://adambom.github.io/parallel.js/ thì sao? – osa
Tìm kiếm người làm việc trên web. Đây là một loại tính năng mới trong trình duyệt hiện đại và có thể không có sẵn trong các trình duyệt cũ.
Sử dụng một vài 'setInterval' có thể làm cho chạy song song có thể, mặc dù nó vẫn có thể chạy trên một lõi đơn. Đoạn mã sau là một ví dụ về việc song song một hàm func với một mảng dữ liệu 'dữ liệu'. Để chạy nó, sử dụng Parallel (func, datas) trong đó func là tên hàm toàn cục và dữ liệu của bạn là một mảng dữ liệu, mỗi dữ liệu là một đầu vào cho func.
var i_array=new Array();
function Parallel(func,datas){
$(datas).each(function(i,v){
i_array[i]=setInterval(function(){
clearInterval(i_array[i]);
window[func](datas[i]);
},10);
});
}
Đây là jsfiddle test. Dấu thời gian trong các số nguyên cho thấy hai ajax đang chạy song song.
Sử dụng window.open() để gọi một trang mới. Trang đó sẽ gọi hàm js đầu tiên. Sau khi window.open() gọi hàm thứ hai, bạn không phải chờ đợi về chức năng đầu tiên để hoàn thành. Bạn chỉ cần đợi window.open() để thực hiện và sau đó lệnh thứ hai sẽ được thực thi.
Javascript chạy dưới dạng một chuỗi duy nhất, nếu yêu cầu bạn muốn tạo không có IO, Trong trường hợp đó không thể thực hiện được, nếu có thao tác IO, bạn có thể thực hiện tốt hai chức năng sau khi khác, bản chất của javascript sẽ bắt đầu thực hiện các chức năng tiếp theo khi nó chờ IO. Thông thường trong các ngôn ngữ hỗ trợ luồng cùng một thứ sẽ tự động đạt được trong khoảng thời gian nghỉ CPU cho một chuỗi.
Bao giờ nghe nói về callbacks? –
@Jon Eustace Có, nếu hai cuộc gọi lại được đồng bộ và không đồng bộ trong các trường hợp như vậy, chỉ có một chức năng sẽ được thực hiện tại một thời điểm. – anksanu
- 1. song song javascript
- 2. Làm thế nào để chạy nhiều lệnh DOS song song?
- 3. Làm thế nào để khai thác bất kỳ song song nào trong mã song song haskell của tôi?
- 4. Làm thế nào để chạy hàm đã cho trong Bash song song?
- 5. Python: Làm thế nào tôi có thể chạy các hàm python song song?
- 6. Song song các bài kiểm tra song song trong Ruby 1.9.3 như thế nào?
- 7. Vòng đời hoạt động song song
- 8. LinqToSql - Song song - DataContext và song song
- 9. Xgrid hoạt động tốt như thế nào với Xcode để biên dịch song song?
- 10. Luồng song song với Xử lý song song
- 11. Làm thế nào để có được HttpServer để tạo ra nhiều HttpHandlers song song?
- 12. Cuộc gọi Ajax song song trong Javascript/jQuery
- 13. Làm thế nào để song song chức năng tinh khiết nhỏ?
- 14. Làm thế nào để thực hiện chức năng Powershell nhiều lần song song
- 15. iterating trên hai danh sách song song trong/bin/sh
- 16. chạy song song AsyncTask
- 17. Làm thế nào để làm cho geom_text() song song với geom_segment() trong thang đo log-lin?
- 18. Bộ lặp song song
- 19. Làm thế nào để cấu hình các hạt nhân từ xa song song trong Mathematica?
- 20. Giảm song song
- 21. OpenMP - Chạy mã song song bên trong mã song song
- 22. ScheduledExecutorService nhiều luồng song song
- 23. Làm thế nào để song song các phép nhân ma trận thưa thớt scipy
- 24. Bash: làm thế nào để chỉ đơn giản là song song nhiệm vụ?
- 25. Làm thế nào để xử lý song song dữ liệu trong tệp ánh xạ bộ nhớ
- 26. Node.js - Async.js: cách thực thi song song hoạt động như thế nào?
- 27. TransactionScope không hoạt động với phần mở rộng song song?
- 28. Làm thế nào để loại bỏ giá trị bằng không từ một mảng song song
- 29. Làm thế nào để viết mã song song với vectơ Haskell?
- 30. Lặp song song trong C#?
Bạn đã hỏi câu hỏi này hai lần: http://stackoverflow.com/questions/2312749/ và http://stackoverflow.com/questions/2306334/ –
@ John - Đây không phải là cùng một câu hỏi. Họ trước đây 2 là về chức năng gọi điện thoại với ASP. Đây là một phiên bản đơn giản hơn nhiều của 2 trước đó, tôi nghĩ câu hỏi này sẽ vẫn mở. –
nhưng vấn đề là nó không làm việc song song, một chức năng sau khi chỉ có một ... tôi cần một số điều như hình ảnh ở phía bên dưới liên kết http://piecesofrakesh.blogspot.com/2009/03/downloading-javascript-files-in .html – Alex