2016-06-16 51 views
0

按幾個答案的問題問, 如何強制瀏覽器重新加載JS的刷新,JavaScript文件的版本控制如何工作?

添加?到腳本的src鏈接。

例如:

<script type="text/javascript" src="myfile.js?1500"></script> 

<script type="text/javascript" src="myfile.js?v1"></script> 

我只是想知道它是如何工作的?我是否需要對我的JS文件進行任何更改,以便與添加的新版本兼容? 如果不是如何重新加載JS每次像值src =「myfile.js?1500」

回答

1

這只是一個技巧,你傳遞一個查詢字符串,告訴瀏覽器他必須從服務器重新加載資源。

無論什麼問號?之後,每次頁面重新加載時都會有所不同。

您不必在服務器端更改任何內容,因爲查詢字符串可以被忽略。

+0

oh..so它不應該是靜態樣的呢?1500年,不應該它是動態的,像專櫃?例如。 ?DateWithTimeSec – user2093576

+0

我這麼認爲[這裏](http://wordpress.stackexchange.com/questions/40667/how-do-you-avoid-caching-during-development)有一個更詳細的帖子。 –

+0

我更正了我的答案,每次更改js文件時問號應該更改後的值。因此,當您在生產環境中部署代碼時,客戶端將加載新版本並且不會陷入緩存問題。如果你需要處理不同的版本,@ medet-tleukabiluly提供的答案也很好。 –

0

你需要一個能夠解決文件版本的服務器,這裏有一個簡單的實現

directory structure

- index.js 
- node_modules/ 
- version0.js 
- version1.js 
- version2.js 

index.js

var express = require('express'); 
var app = express(); 

app.get('/myfile.js', function(req, res){ 
    var version = req.query.v || 0; 
    res.sendFile(__dirname + '/version' + version + '.js'); 
}); 

app.listen(3000, function(){ 
    console.log('listening 3000'); 
}); 

演示在https://glimmer-crow.hyperdev.space/myfile.js?v=1
變化v查詢參數

Hypderdev源https://hyperdev.com/#!/project/glimmer-crow

+0

我想你回答了一個不同的問題。在你的例子中,你處理一個共存並且全都有效的js文件的不同版本,你只需要解決你需要的特性的正確版本。但是,如果您正在開發,則需要更改同一個文件,並且每次測試時都需要從服務器加載該文件。 –

+0

@MarioAlexandroSantini你可以在瀏覽器開發工具中禁用緩存,[截圖](http://i.imgur.com/NWLQNT1。png) –

+0

是的,但是當你投入生產時怎麼樣? –