Tôi có một ứng dụng web iPhone sử dụng tệp kê khai bộ nhớ cache để hoạt động ngoại tuyến. Tôi thêm webapp vào màn hình chính của tôi, sử dụng nó (nói di chuyển đến một vị trí nhất định trên một trang), sau đó quay trở lại màn hình chính. Khi tôi mở lại ứng dụng, trong một thời gian ngắn, tôi thấy nơi tôi từng ở (ở vị trí được cuộn trên trang đó), nhưng sau đó ứng dụng "tải lại" và tôi được cuộn lên đầu trang chính. Có cách nào để ngăn chặn điều này "tải lại"? Điều này xảy ra ngay cả trong chế độ trên máy bay (nghĩa là mọi thứ đang hoạt động trong bộ nhớ cache).Ngăn chặn ứng dụng web iPhone được lưu trong bộ nhớ cache tải lại (di chuyển lên trên)
Trả lời
Bạn chỉ cần nhìn thấy những hình ảnh khởi động mặc định, mà chỉ là một ảnh chụp màn hình của nơi cuối cùng bạn đang ở. Nó không phải là "nạp lại"; ứng dụng không được tải để bắt đầu.
Tìm kiếm "apple-touch-startup-image" để đặt hình ảnh tải thực.
Ah, vậy có phải ảo tưởng rằng trạng thái tôi rời khỏi ứng dụng đã được ghi nhớ không? Không có cơ hội thực sự lưu trữ vị trí di chuyển ngay trước khi đóng? –
Bạn có thể lưu nó vào localStorage chính mình: khi bạn nhận được onscroll, thiết lập lại một bộ đếm thời gian 250ms; khi bộ đếm thời gian hết hạn, hãy lưu vị trí cuộn, có thể liên quan đến neo gần nhất để tính toán cho việc thay đổi trang. Khôi phục khi tải. Chỉ làm bất kỳ điều này khi window.navigator.standalone là đúng. –
// trên tải
window.scroll(0,0);
Để đảm bảo không có nội dung cũ sẽ được hiển thị trong khi tung ra tôi sử dụng này trong trang của tôi:
window.addEventListener ('dỡ bỏ', function() {$ (' body '). hide();});
Vì vậy, trạng thái cuối cùng của trang trống và là những gì được hiển thị cho người dùng khi trang được mở lại.
Cũng là một ý tưởng hay để đảm bảo ứng dụng đang sử dụng các tệp mới nhất từ tệp kê khai bộ nhớ cache: window.applicationCache.addEventListener ( 'updateready', function() { window.applicationCache.swapCache(); window.location.reload (true); }, sai ); – Espen
Tôi không tin có sự kiện 'tải lại' thực sự. onload và onunload là tất cả những gì chúng tôi nhận được.
Bộ xử lý onload khởi động như thể đây là lần đầu tiên bạn đến trang.
Bộ xử lý onunload là chìa khóa để xóa nội dung cũ.
Tôi muốn cung cấp nội dung thay thế cho những người quay lại ứng dụng web của tôi.
window.onunload=function(){
document.getElementsByTagName('body')[0].className+=' unloading'
}
Và để cho CSS thực hiện công việc bẩn để ẩn phần lớn nội dung và hiển thị nội dung thay thế.
(câu trả lời này không dựa trên jQuery hoặc các khuôn khổ khác)
Điều tôi đang gặp phải ở đây là ứng dụng thực sự dường như "ở trong bộ nhớ" lâu hơn nếu tôi sử dụng Safari thông thường thay vì chạy trong chế độ "táo-di động-web-ứng dụng có khả năng". Trong trường hợp sau, một cái gì đó đơn giản như nhấn nút home, sau đó chuyển đổi nhiệm vụ trở lại ứng dụng sẽ gây ra tải lại. Làm điều tương tự trong Safari thường không tải lại. Vì vậy, tôi tồi tệ hơn bằng cách sử dụng "táo-di động-web-ứng dụng có khả năng".
- 1. Ngăn chặn bộ nhớ đệm của trình duyệt trên các nâng cấp ứng dụng web
- 2. iOS: Buộc UIWebView tải lại/ngăn chặn bộ nhớ đệm
- 3. nginx ngăn tải từ bộ nhớ cache
- 4. Làm thế nào để ngăn chặn bộ nhớ cache của trình duyệt cho trang web php
- 5. Ngăn chặn lưu vào bộ nhớ cache của tập tin CSS
- 6. Ngăn Chrome lưu trong bộ nhớ cache yêu cầu AJAX
- 7. IE8 getJSON Dữ liệu được lưu trong bộ nhớ cache
- 8. Cách tải lại bộ nhớ cache twig trong symfony2
- 9. Tải lại toàn bộ trang trên Đăng/Chuyển hướng/Bỏ qua kiểm soát bộ nhớ cache
- 10. Ngăn chặn fb.ui() di chuyển trình duyệt
- 11. Ngăn chặn iPhone từ phóng to ở trên 'select` trong ứng dụng web
- 12. ASP.NET MVC - Ngăn bộ nhớ cache trên Ajax.ActionLinks
- 13. Ứng dụng Java được lưu trong bộ nhớ cache mãi mãi, không tải xuống phiên bản mới?
- 14. Ngăn bộ nhớ cache trong CloudFlare
- 15. Làm cách nào để ngăn chặn lưu vào bộ nhớ cache của các tệp tĩnh trong Yesod?
- 16. Làm cách nào để ngăn chặn Firefox lưu vào bộ nhớ cache nội dung của vùng văn bản trên máy chủ cục bộ?
- 17. Các mẫu ActionMailer cũ được lưu trong bộ nhớ cache?
- 18. Ngăn chặn rò rỉ bộ nhớ AJAX
- 19. Video được nhúng trên YouTube trong UITableViewCell: Cách cache để ngăn tải lại?
- 20. Buộc trình duyệt phải đọc lại hình ảnh được lưu trong bộ nhớ cache
- 21. Bộ nhớ cache đầu ra trang có được lưu trữ trong đối tượng bộ nhớ cache ASP.NET không?
- 22. hiển thị phiên bản webview được lưu trong bộ nhớ cache trên android
- 23. Ngăn chặn bộ nhớ truy vấn của Doctrine trong Symfony
- 24. Cách lưu bộ nhớ cache các gói PIP đã tải xuống
- 25. Ngăn chặn di chuyển trên trình duyệt di động, mà không ngăn chặn việc nhập tiêu điểm
- 26. Chọn nhiều thành phần được lưu trong bộ nhớ cache
- 27. Bộ nhớ cục bộ cho ứng dụng iPhone
- 28. Sử dụng image.complete để tìm hình ảnh được lưu trong bộ nhớ cache trên chrome?
- 29. Yêu cầu AJAX trên bộ nhớ cache
- 30. $ .getJSON trả lại dữ liệu được lưu trong bộ nhớ cache trong IE8
Điều này luôn làm phiền tôi trong ứng dụng Safari thông thường, nó luôn cố gắng tải lại trang trước ... – Fosco