當(dāng)然可以了,腳本都不需要重新啟動的。但是要刷新頁面,清理瀏覽器緩存。
成都創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、孝昌網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為孝昌等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
1、實現(xiàn)原理
使用代理的方式讓所有類和實例能夠在js文件更改后, 對被代理對象進(jìn)行替換, 實現(xiàn)熱更新.
2、作用
使用這個模塊引入的js文件, 在修改后不需要重啟服務(wù)器, 可以達(dá)到下列效果:
1)require.cache更新了, 新的require使用新的js
2)原來舊的類對應(yīng)的實例也更新了 具體就是: 綁定在prototype下的函數(shù), 綁定在類上的函數(shù)等也更新了, 舊實例調(diào)用的是新的代碼.
3、注意
1)因為代理會消耗一定資源, 所以建議只在邏輯js上使用.
2)目前建議開發(fā)環(huán)境中用, 因為還在完善
4、安裝
npm install hot-require
5、引入
// app啟動時候引入這個模塊, 引入一次即可
require('hot-require');
6、示例
// 需要熱更新js, 用下面方式代替原有的require函數(shù)
var yourJs = _require(__dirname, '[your js path]');
//獲取json,這里用的是jquery的ajax方法,只是意思意思,這里可以替換為任何ajax請求
function getData(){
$.ajax({
url: "xxx.php",
success: function(jsondata){
output(jsondata);
}
});
}
//函數(shù)
function output(json){
//轉(zhuǎn)換字符串為對象
var Data = eval('(' + json + ')');
var html = '';
for(var i=0;iData.length;i++){
//具體鍵值根據(jù)你返回的字符串來
html += '名字' + Data[i].name + ' 年齡' + Data[i].age;
}
//插入到元素
document.getElementById('el').innerHTML = html;
}
//每隔10秒執(zhí)行
setTimeout(getData, 10000);希望能幫到你,請采納
Navigator
獲取的名稱
var browser=navigator.appName
獲取瀏覽器的版本
var b_version=navigator.appVersion
進(jìn)行對IE5.5 and IE6.0判斷
if(b_version.indexOf("MSIE 6.0") != -1 || b_version.indexOf("MSIE 5.5") != -1){
如果條件成立,則對其執(zhí)行:
document.getElementById("ie6").style.display = "block";
否則
alert("您目前使用的瀏覽器無需更新!")
整體代碼:
!DOCTYPE HTML
head
title New Document /title
style type="text/css"
*{margin:0;padding:0;}
ul{list-style:none outside none;}
#ie6{text-align:center;line-height:30px;display:none}
/style
/head
body onload="detectBrowser()"
script type="text/javascript"
function detectBrowser()
{
var browser=navigator.appName
var b_version=navigator.appVersion
if(b_version.indexOf("MSIE 6.0") != -1 || b_version.indexOf("MSIE 5.5") != -1){
document.getElementById("ie6").style.display = "block";
}
一般有這些方案,覆蓋面逐級遞增:
1、Expires
2、Cache-control
3、Last-Modifiedetag
4、修改Querystring
5、修改文件名/路徑名以修改URL
不修改URL,避開4、5的話,可以結(jié)合1和3來更新,Expires設(shè)置緩存(及失效時間),Last-modified通知更新。
但如果PV達(dá)到一定量級,很難保證所有用戶都拿到最新的靜態(tài)(甚至4都不太靠譜,運(yùn)營商有劫持靜態(tài)的可能),選擇5改URL是必然的事情。