UNPKG

2.22 kBJavaScriptView Raw
1/**
2 * Created by Rodey on 2016/8/18.
3 * Live Reload
4 */
5;(function(){
6 'use strict';
7
8 this.onload = function(){
9 var wsServer = 'ws://127.0.0.1:{{@port}}';
10 var websocket, wsStin;
11
12 function init(){
13
14 _addBuildLoadingElment();
15
16 websocket = new WebSocket(wsServer);
17 websocket.onopen = onOpen;
18 websocket.onclose = onClose;
19 websocket.onmessage = onMessage;
20 websocket.onerror = onError;
21 }
22
23 init();
24
25 function onOpen(evt) {
26 console.log("Connected to WebSocket server.");
27 websocket.send('client connected');
28 }
29 function onClose(evt) {
30 console.log("Disconnected");
31 }
32 function onMessage(evt) {
33 console.log(evt.data);
34 var message = evt.data;
35 if(/start\sbuilding/gi.test(message)){
36 _showBuildLoading();
37 }
38 else if(/server\sreload/gi.test(message)){
39 location.reload(true);
40 }
41 }
42 function onError(evt) {
43 console.log('Error occured: ' + evt.data);
44 }
45
46 function _addBuildLoadingElment(){
47 var id = '_build-loading-live-reload',
48 buildElm = document.querySelector('#' + id);
49 if(buildElm) return buildElm;
50
51 buildElm = document.createElement('div');
52 buildElm.id = id;
53 buildElm.className = id;
54 var spiner = document.createElement('div');
55 spiner.className = '_build-loading-spiner _build-rounding';
56 var text = document.createElement('span');
57 text.className = '_build-loading-text';
58 text.textContent = 'building......';
59
60 buildElm.appendChild(spiner);
61 buildElm.appendChild(text);
62 document.body.appendChild(buildElm);
63
64 }
65 function _showBuildLoading(){
66 var buildElm = document.querySelector('#_build-loading-live-reload');
67 buildElm && buildElm.classList.add('_build-loading-slide-down');
68 }
69
70 };
71
72}).call(this);