2016-03-04 131 views
-4

我有一個靜態變量的問題。如果頁面刷新,則變量的最後一個值將丟失。這是代碼:Javascript變量丟失值

var ok; 

alert(ok); 

if(ok==1) { 
$('tr:has(td:contains("Blue"))').hide() 
} 

$('tr:has(td:contains("Blue"))').delay(10000).hide(0) 
    ok=1; 

alert(ok); 
+0

你是在開玩笑吧? –

+0

你期望什麼? – C2486

+1

你知道javascript是如何工作的嗎?你爲什麼認爲這會拯救你所做的一切?你知道電腦如何工作嗎?爲什麼你認爲重新啓動計算機會修復很多問題? (*提示;因爲它知道的所有內容,除了**特別記住的**被遺忘,就像javascript *) – h2ooooooo

回答

3

如果頁面被刷新,該變量的最後一個值都將丟失。

當頁面被刷新,存儲在窗口的會話的所有值都將丟失,並創建一個新的sesssion。

除非將值存儲在瀏覽器的存儲器中,否則不會保留它們。

0

刷新頁面時,所有存儲的值都會丟失,認爲它可能保留變量值。這可以通過window.localStorage(或window.sessionStorage)來實現。這個區別在MDN的DOM存儲指南中解釋(鏈接在下面)。

當你需要設定將要在接下來的網頁中反映出來的變量,使用:

var someVarName = "value"; 

localStorage.setItem("someVarName", someVarName); 

,在任何頁面(當頁面加載等),把它想:

var someVarName = localStorage.getItem("someVarName"); 

.getItem()將返回空值或存儲的值。

請注意,只有字符串值可以存儲在此存儲中,但可以通過使用JSON.stringifyJSON.parse來解決。從技術上講,每當你打電話.setItem(),它會打電話.toString()的價值和存儲。

如果localStorage不可用,MDN的DOM存儲指南(鏈接如下)有解決方法/ polyfill,最終回落到像cookies這樣的東西。

使用現有的或創建您自己的迷你庫並不是一個壞主意,它可以抽象保存任何數據類型(如對象文字,數組等)的功能。

+0

檢查http://stackoverflow.com/questions/16206322/how-to-get-js-variable -to-保留價值-後頁面刷新 –