『壹』 iframe子頁面訪問過後相應js 緩存在瀏覽器,怎麼不緩存
這兩天遇到一個很奇怪的問題,一個頁面嵌套了一個iframe頁面,當這個頁面提交後再次跳轉到本頁面時,原本iframe內的頁面應該刷新數據的,結果在ie下面卻沒刷新(FF下沒問題),必須手動F5或者新開一個瀏覽器標簽頁瀏覽才能刷新,否則在本頁面的瀏覽器上按回車是沒用的,查閱了很多資料,最後終於發現是iframe緩存機制在搞鬼,用以下方法即可解決:
<script type="text/JavaScript">
var randomnumber=Math.floor(Math.random()*100000)
document.write('
<iframe src="http://www.freedonation.com/hunger/hunger_thankyou.php3?randomnumber='+randomnumber+'" name="aframe" width="100%" height="400"></iframe>')
</script>
通過請求多加一個值為隨機數的參數,這樣瀏覽器認為每次請求的頁面都是新的而保證了iframe頁面每次都是重新載入的。
頂
0
踩
0
『貳』 如何讓html頁面不緩存,js永久緩存
當瀏覽不同Url時,瀏覽器會自動將當前訪問的地址進行一次緩存;而第二次訪問時著調用緩存下來的頁面,從而達到頁面快速載入(頁面載入優化)的目的;
因此,我們可以給頁面後面設定個不同的值,讓頁面保持沒錯訪問的不同即可達到不緩存的目的了!
下面是個簡單的示例:
復制代碼 代碼如下:
<script>
document.write("<script type='text/javascript' src='/js/test.js?"+Math.random();+"'></script>");
</script>
其他的類似,只需在地址後加上+Math.random()
注意:因為Math.random() 只能在Javascript 下起作用,故只能通過Javascript的調用才可以
最後加一個ajax也不讓緩存的方法
復制代碼 代碼如下:
xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true);
記得後面的now=" + new Date().getTime()是重點,需要帶參數的。
希望本文所述對大家的javascript程序設計有所幫助。
以上是雲棲社區小編為您精心准備的的內容,在雲棲社區的博客、問答、公眾號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索js , html , 頁面 不緩存 javascript 緩存、javascript 清除緩存、javascript緩存數據、javascript 本地緩存、javascript 緩存機制,以便於您獲取更多的相關知識。
『叄』 瀏覽器會緩存CDN上的javascript嗎
瀏覽器有多種緩存,問者應該問的是 200 304 這類機制,並且不考慮manifest帶來的影響,也不考慮用戶使用ctrl+F5 (mac:command+R) 強制刷新
首先,瀏覽器檢測某個靜態文件的緩存是否到期,如果到期,發請求到伺服器看文件是否已經被改變,若未改變,則返回304,不下載新的,如果改變,則返回200,並且下載新的;如果沒有到期,直接使用緩存裡面的。
所以瀏覽器緩存和請求到達的伺服器(不論是否cdn,如果上cdn則到達其中一台)上文件是否變化,緩存時間是否到期有關,與伺服器是否上cdn部署沒有關系。
『肆』 能用JS或者前端的什麼方法實現清除瀏覽器緩存嗎
可以用JS實現清除瀏覽器緩存,解決方法如下:
1、在靜態頁面也就是以.html,.jsp,.aspx,.php結尾的文件中在<dead></head>中加入以下代碼。
注意事項:
JavaScriptJavaScript基於對象和事件驅動並具有相對安全性的客戶端腳本語言。也是一種廣泛用於客戶端Web開發的腳本語言,常用來給HTML網頁添加動態功能,比如響應用戶的各種操作。
『伍』 JavaScript中如何把頁面中的圖片存入內存或cookie中,以便下一次訪問相同頁面的時候本地
圖片是不能存入cookie的~cookie只能存一些代碼或者文本之類的東西,至於內存的話就別想了,瀏覽器沒給你這個許可權,不過瀏覽器都有緩存的啊~打開之後都會把東西存入緩存,這個你就不用擔心了~然後再一個就是新的瀏覽器(IE9以上)都有前端緩存,可以參考一下~
『陸』 if (person!=null && person!="")WEB前端這個表示什麼,能分解一下嗎
1.這個if判斷代碼可能起到的作用與要達到的實際效果:
------>
person可能代表表單標簽中某個input輸入框的內容,
不管用戶做了什麼(比如什麼也不輸入就直接提交或者輸入又清空了後提交.....),
只要最後的輸入為空,就不能提交,並給出相應的提示,
這一點,我們應該有所體會了,尤其是我們在網站注冊用戶時經常遇到)
這里涉及網頁解釋執行的順序和緩存機制:
(幾乎所有的瀏覽器都支持javaScript,不支持的少數,幾乎可以排除,不使用)
網頁中的javaScript腳本代碼
往往需要在文檔載入完成後才能夠去執行,
否則可能導致無法獲取對象的情況,為了避免這種情況的發生,改變執行的先後順序,可以使用以下兩種方式:
一.將腳本代碼放在網頁的底端,這樣在運行腳本代碼的時候,可以確保要操作的對象已經載入完成。(但實際我們還是按照常規,不採用這種方式,一般為了開發效率,使用js框架,
script標簽放在head標簽內,位於正文body的前面)
二.通過原始的window.onload來執行腳本代碼(當然這是比較保險的做法)。(但實際也不採用,因為大多數都用js框架來封裝這個window.onload,使用的也是封裝後的window.onload,這也可能涉及兼容性問題)
以上2種方式都不採用,實際開發中使用js等框架,仍可能存在無法獲取對象(對象=null)問題
使用js框架往往有瀏覽器兼容性問題,不同瀏覽器有的支持,有的不支持
如果支持就能按照代碼的設想去執行,也就是框架可以使用封裝的onload改變腳本的執行順序
(當然,這是理想的情況,沒有考慮潛在兼容性問題)
如果不支持,那可能就不生效了,按照原始的從上到下的順序依次執行
這樣的情況下:
(使用js框架,script標簽放在head標簽內,位於正文body的前面,那麼)
if判斷的位置在產生person實例(body)之前,
第1次載入時:
if語句先於產生person實例執行,瀏覽器當前頁面的緩存為空,
有可能person為null的問題
(即使使用js框架去改變載入執行順序,有的瀏覽器可以做到person不為null,但這樣的改變潛在兼容性問題,有的可能不生效),
,執行if後才產生person實例,出現在瀏覽器緩存
第2次及以後的載入,瀏覽器讀取上一次時的person緩存,person不再為null
也就是,
if(person!=null),可以判斷網頁是否已經載入過person了(不再是第1次載入)
如果已經載入過了(person!=null條件成立,那麼再判斷輸入是否空輸入,""表示空輸入,輸入為空就不能提交了
關於&&邏輯操作符:
只有&&左邊的條件(person!=null)成立才會進行右邊的判斷(person!=""),否則不判斷,直接忽略這個if語句,不再執行if之後的語句體{...}
因此可以得到判斷這么寫的原因:
(不管載入執行順序如何)
只要不為null的情況下判斷輸入為空才有意義,反過來是沒有意義的
(判斷輸入為空的先決條件是person!=null)
補充:對於輸入的tips:
person!=null && person!=""
的判斷順序是不能調換的,
不能寫成 person!=""&&person!=null,
person!=""&&person!=null,
判斷順序不能調換的原因:無論person=null或者person!=null都滿足左邊的條件,雖然person=null不滿足右邊的條件,不會執行if的語句體,但person!=""沒有發揮應有的作用,因為沒有滿足person!=""判斷的先決條件