Tôi đã lập trình trong nodejs đã xem xét cách sử dụng cả lệnh socket.io và ajax cho máy chủ nút. Socket.io có được thiết kế để thay thế ajax không? Tôi tò mò muốn biết trong trường hợp đó là tốt để sử dụng socket.io và những người ajax là đẹp hơn. Cảm ơn các đầu vào.Khi nào cần sử dụng socket.io và khi nào thì sử dụng ajax
12
A
Trả lời
24
Vâng, một trong những ổ cắm web chính (thông qua socket.io) cung cấp thiếu ajax là đẩy máy chủ. Vì vậy, với ajax nếu bạn muốn tìm hiểu về các sự kiện mới trên máy chủ (một người dùng khác đã gửi cho bạn một tin nhắn, ví dụ), bạn cần phải thực hiện kiểm tra máy chủ, có nghĩa là bạn gửi yêu cầu ajax trong một vòng lặp định kỳ tương đối thường xuyên. Hầu hết thời gian máy chủ trả lời rằng không có gì mới, nhưng đôi khi khi có một cái gì đó mới, khách hàng có thể tìm hiểu về nó.
Ổ cắm web cho phép máy chủ chủ động đẩy thông báo cho khách hàng mà không cần bỏ phiếu. Vì vậy, nếu ứng dụng của bạn có bất kỳ loại thông tin nào cần bắt đầu trên máy chủ và chỉ hiển thị trong trình duyệt, các ổ cắm web là một giải pháp tốt hơn ở đó.
- Nộp dữ liệu đến máy chủ trong mô hình request/response
- ajax hoặc web socket về cơ bản tương đương, hình thức POSTS truyền thống cũng OK
- Nộp sự kiện đến máy chủ trong một mô hình dòng sự kiện
- ổ cắm web tốt nhất, có thể được mô phỏng qua ajax hơi
- Sự kiện đẩy từ máy chủ đến trình duyệt
- Ổ cắm web tốt nhất, có thể được mô phỏng thông qua bỏ phiếu dài ajax, flash, v.v. (socket.io có một số nhược điểm mà nó có thể sử dụng nếu không có ổ cắm web thực).
- trình duyệt cũ, một số nền tảng di động
- hỗ trợ ổ cắm web là không có, vì vậy ajax là dự phòng của bạn
Các vấn đề liên quan
- 1. Khi nào cần sử dụng viewDidLoad và khi nào thì sử dụng awakeFromNib
- 2. Khi nào nên sử dụng node.js và khi nào sử dụng ajax?
- 3. Khi nào nên sử dụng Class.isInstance() và khi nào thì sử dụng toán tử instanceof?
- 4. Khi nào thì muốn sử dụng OneTuple?
- 5. Khi nào cần sử dụng Request.UrlReferrer và khi Request.ServerVariables ["HTTP_REFERER"]?
- 6. Application.DoEvents, khi nào cần thiết và khi nào thì không?
- 7. Khi nào sử dụng undef_method, và khi nào cần sử dụng remove_method?
- 8. Khi nào nên sử dụng isInstanceOf và khi nào thì sử dụng câu lệnh đối sánh-trường hợp (trong Scala)?
- 9. Khi nào sử dụng các thành phần Seaside và khi nào thì sử dụng các đối tượng render đơn giản?
- 10. Nhà phân bổ là gì và khi nào thì việc sử dụng chúng cần thiết?
- 11. Khi nào nên sử dụng dịch vụ dữ liệu WCF và khi nào thì không?
- 12. Khi nào tôi nên sử dụng async/await và khi nào thì không?
- 13. Hibernate fetching strategy - khi nào sử dụng "join" và khi nào thì dùng "select"?
- 14. Khi nào thì sử dụng "với" trong python
- 15. Khi nào thì không nên sử dụng dịch vụ web?
- 16. Khi nào cần sử dụng giao diện và khi nào cần sử dụng các chức năng bậc cao hơn?
- 17. Khi nào tôi cần sử dụng quaternions?
- 18. Khi nào cần sử dụng Eventstore
- 19. Khi nào tôi cần sử dụng @WebServiceRef?
- 20. Khi nào tôi cần sử dụng MPI_Barrier()?
- 21. Khi nào thì sử dụng Thread.Sleep() hợp lý?
- 22. Khi nào thì sử dụng bản đồ có ý nghĩa?
- 23. Khi nào thì sử dụng các quy ước gọi điện
- 24. Khi nào cần sử dụng loại và thời điểm sử dụng phân lớp?
- 25. __declspec là gì và khi nào tôi cần sử dụng?
- 26. Điều gì và khi nào cần sử dụng Tuple?
- 27. Làm thế nào và khi nào thì thích hợp sử dụng weakref bằng Python
- 28. Khi nào sử dụng "mới" và khi nào không sử dụng, trong C++?
- 29. Khi nào sử dụng trình tạo phân tích cú pháp, khi nào thì regex là đủ?
- 30. Khi nào sử dụng, không sử dụng, OneToOne và ManyToOne
Cảm ơn bạn đã trả lời nhanh chóng. Vì vậy, trừ khi bạn có lý do chính đáng để làm khác, hãy sử dụng các ổ cắm web để giao tiếp hoạt động. Ổ cắm web có bất kỳ nhược điểm nào không? –
Hỗ trợ trình duyệt cho các ổ cắm web chưa hoàn chỉnh như đối với ajax, đặc biệt là trên thiết bị di động. Giống như tất cả các công nghệ mới, các công cụ và kiến thức cộng đồng xung quanh chúng không phải là trưởng thành vì nó dành cho ajax. Ngoài ra, có thể có những thách thức triển khai với proxy và máy chủ web yêu cầu cấu hình cụ thể trước khi ổ cắm web hoạt động. –
@PeterLyons Vì vậy, nếu tôi đang tạo một hệ thống thông báo thì ổ cắm web là tốt nhất, phải không? –