Thời gian chờ của phiên có thể xảy ra nếu có một số tệp rất lớn được tải lên không? Hãy tưởng tượng tôi tải lên một tệp lớn 5 GByte và thời gian chờ phiên ngắn được đặt. Thời gian chờ của phiên có thể xảy ra trong khi phát trực tuyến tệp không?Tệp PrimefacesTải lên và thời gian chờ của phiên
Trả lời
Có, nó có thể. Các servlet specification không nơi nào cấm rằng một phiên có thể bị phá hủy trong một yêu cầu hoạt động. Do đó, bạn sẽ gặp rủi ro khi ViewExpiredException
khi tải lên như vậy đến với bean.
Nếu đây là mối quan tâm của bạn, bạn đã một vài lựa chọn:
Hãy để cho hình thức tải lên không đồng bộ thăm dò ý kiến để server theo chu kỳ để giữ phiên còn sống. Bạn có thể sử dụng EL
#{session.maxInactiveInterval}
để có thời gian chờ hiện tại tính bằng giây.<p:fileUpload ... /> <p:poll interval="#{session.maxInactiveInterval - 10}" async="true" />
Sự khác biệt 10 giây chỉ là để ngăn chặn điều đó nó đến một vài giây quá muộn vì trang đó cũng có thể mất một thời gian để tải tất cả các HTML và để khởi tạo cuộc bình chọn. Bạn có thể nếu cần thiết có điều kiện bắt đầu/trả lời bình chọn khi bắt đầu tải lên.
Hãy để "OnStart" trường hợp upload tăng thời gian chờ phiên đến một giới hạn nhất định (giờ?) Và để cho các "onComplete" trường hợp upload đặt nó trở lại.
<p:fileUpload ... onstart="increaseTimeout()" oncomplete="resetTimeout()" /> <p:remoteCommand name="increaseTimeout" listener="#{bean.increaseTimeout}" /> <p:remoteCommand name="resetTimeout" listener="#{bean.resetTimeout}" />
Bạn có thể sử dụng bean
ExternalContext#setSessionMaxInactiveInterval()
để đặt thời gian chờ của phiên mong muốn tính bằng giây.Sử dụng một hình thức stateless JSF. Chế độ xem sẽ không bao giờ hết hạn, bất kể phiên HTTP hoạt động như thế nào.
<f:view transient="true"> ... </f:view>
Lưu ý: bất kỳ hạt nào có phạm vi xem được gắn với chế độ xem như vậy sẽ hoạt động giống như yêu cầu. Để tránh nhầm lẫn, hãy thay thế chú thích nếu cần.
- 1. Tăng thời gian chờ của reCAPTCHA phiên
- 2. Thời gian chờ của phiên .NET
- 3. Thời gian chờ của phiên trong ASP.NET
- 4. Cách tránh thời gian chờ của phiên trong Android
- 5. Joomla tăng thời gian chờ của phiên làm việc trước
- 6. Thay đổi thời gian chờ của phiên trên IIS Express?
- 7. Kiểm tra thời gian chờ của phiên trong Laravel
- 8. Phản hồi thời gian chờ của phiên trong AJAX
- 9. Thời gian chờ của phiên khởi động mùa xuân
- 10. Thời gian chờ của Faraday
- 11. Sửa đổi hết hạn phiên cookie và hết thời gian chờ phiên cho phiên CakePHP
- 12. Thời gian chờ của Silverlight, RIA & ASP.Net
- 13. Thời gian chờ kết nối và thời gian kết nối
- 14. Thời gian chờ của thẻ ping và ttl của iOS
- 15. Thời gian chờ kết nối Grails trong thời gian tải lên lớn
- 16. Cách bật thời gian chờ phiên và đặt phiên trong Spring Security
- 17. Kiểm tra hết thời gian chờ phiên ASP.NET
- 18. Cách nâng cao thời gian chờ phiên trong ServiceStack
- 19. phiên biến thời gian chờ trong ứng dụng asp.net
- 20. Sự khác biệt giữa thời gian chờ và thời gian chờ mở là gì?
- 21. ASIHTTPRequest đặt thời gian chờ
- 22. Thời gian chờ của thước đo
- 23. Thời gian chờ của nhân viên Gunicorn
- 24. Thời gian chờ cổng API của Amazon
- 25. Cookie hết hạn hoặc thời gian chờ phiên quá sớm
- 26. Lỗi thời gian chờ của RabbitMQ
- 27. Thời gian chờ của máy chủ Restlet
- 28. Nhiều thời gian chờ đợi của Capybara?
- 29. Đặt thời gian chờ của ổ cắm?
- 30. Thời gian chờ của máy chủ SQL
Cảm ơn rất nhiều. Tôi sẽ sử dụng tùy chọn 2 vì 'p: fileUpload' không hiển thị trong trường hợp của tôi khi quá trình tải lên được thực hiện. Nó nằm bên trong một hộp thoại sẽ được đóng lại và quá trình tải lên được bắt đầu qua cuộc gọi javascript. – opfau
Bạn được chào đón. – BalusC
+1 để đề cập đến biểu mẫu JSF không quốc tịch! : D không biết điều đó cho đến bây giờ. trong bản phát hành jsf nào sẽ có sẵn? – Fritz