簡體   English   中英

為什么這個JavaScript無法在Rails中工作?

[英]Why this javascript is not working in rails?

當我從瀏覽器單擊“ back button ,它顯示數據庫中的過時值。 我嘗試使用以下代碼,但無法正常工作

<script type="text/javascript">
   $(document).ready(function() {
      alert("I am an alert box!");
   });
</script>

用戶單擊瀏覽器的后退按鈕時如何刷新頁面或獲取更新值?

Asp.Net Webforms:

在頁面加載中(或),如果要所有頁面,則置於母版頁面加載中

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

Asp.Net MVC:

在操作或控制器中添加此屬性

[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]

要么

如果要禁用所有視圖的緩存,請在“過濾器配置”中添加以下內容

filters.Add(new OutputCacheAttribute{VaryByParam = "*",Duration = 0,NoStore = true});

編輯:我注意到,在評論中您提到您在軌道上使用紅寶石。 我對此並不熟悉,但是邏輯是服務器需要向瀏覽器發送標頭以“不緩存該頁面”。 因此,您可以在此處找到一些答案Ruby on Rails:清除緩存的頁面

使用哈希確定它是否已經刷新,以確保它僅發生一次:

window.onload = function() {
    if(!window.location.hash) {
        window.location = window.location + '#loaded';
        window.location.reload();
    }
}

jquery和代碼的集成沒有問題。 Rails項目帶有TurboLink ,它與jquery有一些沖突。 一種可能的解決方案是從項目中刪除turbolink (從application.rb刪除它)並使用Jquery-Turbolink

這將允許像我在問題中那樣使用jquery內置函數。

請更新答案或添加評論以獲取其他可能的解決方案。

暫無
暫無

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

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