UNPKG

3.69 kBJavaScriptView Raw
1!(function(){
2 var Fws = function(){
3 var _ts = this;
4 _ts.socket = io(socketServer);
5
6 _ts.socket.on('refresh',function(result){
7 if(result && result.status === 'success'){
8 var pathInfo = _ts.getPathInfo(result.path);
9
10 switch (pathInfo.fileType) {
11 case 'html':
12 _ts.refresh();
13 break;
14 case 'css':
15 _ts.updateCss();
16 break;
17 case 'js':
18 _ts.refresh();
19 //_ts.updateJs();
20 break;
21 default:
22 _ts.log('更新信息:',result);
23 break;
24 };
25 };
26 // _ts.socket.emit('my other event',{my:'data'});
27 });
28 _ts.socket.emit('pageLoad',{
29 url:location.href
30 });
31 };
32
33 Fws.prototype = {
34 log:function(){
35 var arg = arguments;
36 if(typeof window.console === 'object' && typeof window.console.log === 'function'){
37 console.log.apply(null,arguments);
38 };
39 },
40 //获取path信息
41 getPathInfo:function(path){
42 path = path || '';
43 var aDir = path.split('\\');
44 if(aDir.length === 1){
45 aDir = path.split('/');
46 };
47
48 var fileName = aDir[aDir.length - 1].toLowerCase(),
49 afileType = fileName.split('.'),
50 fileType = afileType[afileType.length - 1];
51
52 return {
53 fileName:fileName,
54 fileType:fileType
55 };
56 },
57 //获取url信息
58 getUrlInfo:function(url){
59 var aFile = url.split('?')[0].split('/'),
60 fileName = aFile[aFile.length - 1].toLowerCase(),
61 afileType = fileName.split('.'),
62 fileType = afileType[afileType.length - 1];
63 return {
64 fileName:fileName,
65 fileType:fileType
66 };
67 },
68 //获取新的url
69 newUrl:function(url){
70 var re = /ver=(\d)*/,
71 newVer = 'ver='+ new Date().valueOf();
72
73 if(re.test(url)){
74 return url.replace(re,newVer);
75 }else if(url.indexOf('?') > -1){
76 return url + '&' + newVer;
77 }else{
78 return url + '?' + newVer;
79 };
80 },
81 //刷新页面
82 refresh:function(){
83 var _ts = this;
84 location.reload(true);
85 },
86 //更新样式
87 updateCss:function(){
88 var _ts = this,
89 obj = document.getElementsByTagName('link');
90
91 for(var i = 0,len = obj.length; i < len; i++){
92 var href = obj[i].href;
93 obj[i].href = _ts.newUrl(href);
94 };
95 },
96 //更新js
97 updateJs:function(){
98 var _ts = this,
99 obj = document.getElementsByTagName('script');
100
101 for(var i = 0,len = obj.length; i < len; i++){
102 var src = obj[i].src;
103 obj[i].src = _ts.newUrl(src);
104 };
105 },
106 //更新React
107 updateReact:function(){
108 var _ts = this,
109 obj = document.getElementsByTagName('img');
110 for(var i = 0,len = obj.length; i < len; i++){
111 var src = obj[i].src;
112 obj[i].src = _ts.newUrl(src);
113 };
114 }
115 };
116 var init = new Fws();
117})();