Tôi có một cột trong cơ sở dữ liệu của mình sẽ được cập nhật ngẫu nhiên. Bất cứ khi nào cột đó được cập nhật, tôi cần làm mới nội dung trên trang của mình. Làm thế nào tôi có thể sử dụng AJAX + jQuery để thực hiện một hành động chỉ trên các thay đổi DB?Sử dụng AJAX để xem cơ sở dữ liệu SQL cho các thay đổi
Trả lời
sử dụng hàm setInterval javascript để bỏ phiếu và để kiểm tra giá trị của trường dababase cập nhật
kiểm tra liên kết sau để biết thêm chi tiết http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
Bạn sẽ phải liên tục thăm dò ý kiến một trang có giá trị từ cơ sở dữ liệu.
Móc một quy trình được lưu trữ đặc biệt vào cơ sở dữ liệu của bạn để cảnh báo ứng dụng của bạn sau khi sửa đổi. Bạn sẽ cần một mô-đun tùy chỉnh và các câu lệnh kích hoạt đúng.
Tùy chọn khác của bạn là bỏ phiếu.
Làm cách nào để cảnh báo ứng dụng, trên trình duyệt của khách hàng? –
Ứng dụng này có hai phần: trên trình duyệt và trên máy chủ web. Dịch vụ web phụ trợ chịu trách nhiệm nói chuyện với cơ sở dữ liệu trừ khi người hỏi đang sử dụng kiểu .0000001% để SQL nói chuyện với trình duyệt vào cơ sở dữ liệu. –
+1 cho một cách để ngăn chặn "bỏ phiếu cơ sở dữ liệu", ngay cả khi không ngăn chặn "khách hàng đến máy chủ bỏ phiếu" –
Máy chủ (cơ sở dữ liệu/web) không thể khởi tạo kết nối - chỉ có khách hàng mới có thể. Vì vậy, bạn sẽ phải thăm dò ý kiến cơ sở dữ liệu cho đến khi có một bản cập nhật. Bạn có thể tạo một dịch vụ web để kiểm tra cơ sở dữ liệu và jQuery sử dụng nó.
Chỉnh sửa: Tôi đã sửa. Có thể giữ kết nối AJAX mở cho đến khi máy chủ "đẩy" dữ liệu vào nó. Xem: http://en.wikipedia.org/wiki/Reverse_Ajax
Và dường như nó thực sự đang bỏ phiếu: http://en.wikipedia.org/wiki/Push_technology#Long_polling. Nếu máy chủ không có bất kỳ dữ liệu nào để gửi, nó sẽ giữ kết nối mở cho đến khi nó hoạt động. Nó không phải là công nghệ đẩy "thuần túy", vì máy khách không có cổng nghe mà máy chủ kết nối. Tuy nhiên, hiệu quả là tương tự.
Chỉnh sửa 2: Quay lại để trả lời câu hỏi của bạn ... Bạn sẽ phải chọn cách "thăm dò ý kiến" dịch vụ web. Các dịch vụ web sau đó sẽ phải kiểm tra cơ sở dữ liệu để xem nếu có bản cập nhật. Kiểm tra cơ sở dữ liệu để cập nhật có thể là điều khó khăn nhất và thực sự phụ thuộc vào yêu cầu của bạn. Bạn có thể chạy một truy vấn SQL để xem có thay đổi gì không, nhưng làm sao bạn biết? Bạn sẽ cần một số loại tham số (thường là một ngày) để so sánh. Nếu làm sai, bạn có thể bỏ lỡ một số cập nhật hoặc có nhiều lần truy cập cho một bản cập nhật. Những gì Autocracy nói sẽ là một cách tốt để nhận được thông báo cập nhật. Bạn có thể giữ danh sách đó trong cơ sở dữ liệu, trong bộ nhớ, vv và xóa nó khi máy khách nhận được các bản cập nhật.
Về cơ bản, bạn sẽ phải liên tục thăm dò ý kiến máy chủ để thay đổi DB. Máy chủ không thể thực hiện cuộc gọi đến máy khách, vì vậy máy khách sẽ chỉ phải liên tục hỏi máy chủ nếu có thay đổi.
Xem http://en.wikipedia.org/wiki/Reverse_Ajax –
Tôi muốn đề xuất tạo trang HTML sử dụng setIntreval() để liên tục thực hiện cuộc gọi AJAX đến tập lệnh PHP truy vấn cơ sở dữ liệu của bạn. Bạn có thể sử dụng JSON và PEAR để làm cho công việc dễ dàng hơn một chút.
Links tham khảo:
OK. Cảm ơn rất nhiều. Phương pháp của bạn hoạt động hoàn hảo! Chỉ không thể đặt khoảng thời gian quá thấp hoặc có vấn đề với trình đọc dữ liệu mở/đóng. –
Những gì bạn mô tả là thông tục được gọi là Comet lập trình. Comet mô tả một nhóm các kỹ thuật để đẩy nội dung đến một trang web với kết nối HTTP liên tục.
Việc đẩy sẽ được bắt đầu bằng cách sử dụng kết hợp thủ tục kích hoạt/lưu trữ trong máy chủ cơ sở dữ liệu. Bằng cách đó, nó xảy ra bất kể nơi cập nhật dữ liệu đến từ đâu.
Bạn đã hiểu. Wikipedia (http://en.wikipedia.org/wiki/Comet_%28programming%29): Comet ... được biết đến bởi một số tên khác, bao gồm Ajax Push, Reverse Ajax, Hai chiều-web, HTTP Streaming và HTTP đẩy máy chủ trong số những người khác. –
Điều này nghe rất hay. Tôi sẽ phải nhìn vào nó. Cảm ơn vì lời khuyên! –
ví dụ: http://www.ape-project.org/ – choise
Im làm gần như cùng một điều với một cuộc trò chuyện, tải lại một kịch bản php mỗi xx giây
Trông như thế này: thay thế j với $ nếu không sử dụng jquery.noconflict ..
j(".chatref").everyTime(3000,function(i){
j.ajax({
url: "chatx.php",
cache: false,
success: function(updated){
j(".chatref").html(updated);
...do stuff..
}
});
Đây là một phương pháp rất tốt đẹp tôi nghĩ :) nếu bạn muốn gửi vars để chatx.php chỉ cần thêm ? php & x = 1 & y = 2?>
- 1. Có cách nào để xem cơ sở dữ liệu mysql cho các thay đổi bằng cách sử dụng perl không?
- 2. Làm cách nào để nghe các thay đổi cơ sở dữ liệu SQL Server
- 3. Xem hồ sơ mới trong cơ sở dữ liệu sql
- 4. Làm cách nào để thay đổi chủ sở hữu của cơ sở dữ liệu SQL Server?
- 5. Cách chuyển đổi cơ sở dữ liệu Visual Foxpro sang cơ sở dữ liệu SQL Server
- 6. thay đổi nhiều cơ sở dữ liệu mysql cùng một lúc (thay đổi cơ sở dữ liệu SAAS)
- 7. Thay đổi DBML, cách thay đổi cơ sở dữ liệu SQL?
- 8. Java, cách thay đổi cơ sở dữ liệu hiện tại sang cơ sở dữ liệu khác?
- 9. Trình nghe WebSocket cho Cơ sở dữ liệu Microsoft SQL
- 10. Thay đổi bảng cơ sở dữ liệu ở Django
- 11. Thay đổi cơ sở dữ liệu mặc định cho thông tin đăng nhập SQL Azure
- 12. từ cơ sở dữ liệu sử dụng?
- 13. Sử dụng cho Cơ sở dữ liệu báo cáo phppgadmin?
- 14. Thay đổi chủ sở hữu sơ đồ cơ sở dữ liệu trong SQL Server 2005
- 15. Làm cách nào để khóa cơ sở dữ liệu SQL Server để thay đổi?
- 16. Tôi nên sử dụng cơ sở dữ liệu nào để sử dụng cho dự án nhà?
- 17. Thả cơ sở dữ liệu SQL Server
- 18. Sử dụng AbstractRoutingDataSource để tự động thay đổi lược đồ/danh mục cơ sở dữ liệu
- 19. Sử dụng CPU theo cơ sở dữ liệu?
- 20. Cơ sở dữ liệu SQL Azure bằng cách sử dụng SQL Server Management Studio
- 21. Làm thế nào để chuyển đổi tệp cơ sở dữ liệu H2Database thành tệp cơ sở dữ liệu MySQL .sql?
- 22. Thay đổi cơ sở dữ liệu ELMAH trong mã
- 23. Sử dụng wp_query sau khi thay đổi cơ sở dữ liệu qua wpdb mới
- 24. Cấu trúc cơ sở dữ liệu SQL
- 25. Công cụ quản lý thay đổi cơ sở dữ liệu?
- 26. Phát triển nhanh và thay đổi cơ sở dữ liệu
- 27. Chuyển đổi cơ sở dữ liệu Postgres thông thường thành cơ sở dữ liệu không gian
- 28. thay thế cho cơ sở dữ liệu bỏ phiếu?
- 29. Cách sử dụng nhiều cơ sở dữ liệu trong ứng dụng Rails Sử dụng cơ sở dữ liệu
- 30. Sử dụng cơ sở dữ liệu SQLite trong Libgdx
Không nhất thiết. Có sẵn các kỹ thuật đẩy. –
@RobertHarvey Chẳng hạn như? bạn có thể cho như vậy không? –