簡體   English   中英

在特定頁面上禁用頁面緩存

[英]Disable page cache on a specific page

不知道我是否真的在正確的論壇上,但是如果不正確,請告訴我。 我有一個用ASP(不是.net)編碼的頁面,用於發送電子郵件。 我們目前遇到一個問題,該頁面似乎有時會發送兩次。 經過檢查,我們發現有此問題的人來自大型組織,因此建議他們的服務器出於某種原因可能會緩存文件。

我想知道,HTML(或ASP)中是否有一種方法可以防止這種情況的發生? 還是必須在IIS中進行設置?

編輯:我忘了提到的是,有時候,兩封郵件之間的時間可以是幾小時,而不僅僅是幾秒鍾

謝謝,

我在這里看不到任何緩存問題。

我看到的唯一解決方案是將發送的電子郵件列表存儲在服務器端(數據庫,文件系統)的某個位置,並在發送之前檢查該列表。

使用這種方法,您將確保只向指定地址發送一封郵件,以避免重復提交或其他可能的問題。

我不知道這與緩存有什么關系。 畢竟,緩存的頁面包含生成的html,因此不會觸發發送電子郵件的代碼的另一次執行。

但是,我最好的猜測是,它與刷新頁面的用戶有關。 為避免這種情況,您可以實現發布/重定向模式,在該模式下,發送郵件后,您將重定向到另一個頁面(或同一頁面,但具有不同的表單參數)。 這樣,用戶可以在不觸發另一封電子郵件的情況下,根據需要多次刷新頁面。

如果您的問題是緩存,那么實際上您無能為力,無法阻止組織緩存它。

您可以嘗試添加以下代碼以查看它是否有所不同:

Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache" 

如果這不起作用,則您可能需要聯系該組織的IT部門,並要求他們為您的頁面/站點添加緩存例外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM