Showing
1 changed file
with
56 additions
and
3 deletions
@@ -116,10 +116,63 @@ | @@ -116,10 +116,63 @@ | ||
116 | {{/wechatShare}} | 116 | {{/wechatShare}} |
117 | <script>var STATIC_RESOURCE_HASH = '{{startTime}}';</script> | 117 | <script>var STATIC_RESOURCE_HASH = '{{startTime}}';</script> |
118 | {{#if devEnv}} | 118 | {{#if devEnv}} |
119 | - <script>var STATIC_RESOURCE_PATH = '//{{devHost}}:{{port}}';</script> | 119 | + <script> |
120 | + var STATIC_RESOURCE_PATH = '//{{devHost}}:{{port}}'; | ||
121 | + window.jsFiles = ["//{{devHost}}:{{port}}/libs.js?t={{startTime}}", "//{{devHost}}:{{port}}/{{module}}.{{page}}.js?t={{startTime}}"]; | ||
122 | + </script> | ||
120 | 123 | ||
121 | - <script src="//{{devHost}}:{{port}}/libs.js?t={{startTime}}"></script> | ||
122 | - <script src="//{{devHost}}:{{port}}/{{module}}.{{page}}.js?t={{startTime}}"></script> | 124 | + <script> |
125 | + (function() { | ||
126 | + window.jsFiles.forEach(function(file) { | ||
127 | + var preloadLink = document.createElement('link'); | ||
128 | + | ||
129 | + preloadLink.href = file; | ||
130 | + preloadLink.rel = 'preload'; | ||
131 | + preloadLink.as = 'script'; | ||
132 | + document.head.appendChild(preloadLink); | ||
133 | + }); | ||
134 | + window.loadJS = function loadJS(src, retryMode) { | ||
135 | + var ref = window.document.getElementsByTagName('script')[ 0 ]; | ||
136 | + var script = window.document.createElement('script'); | ||
137 | + var scriptSrc; | ||
138 | + | ||
139 | + if (retryMode) { | ||
140 | + scriptSrc = src; | ||
141 | + } else { | ||
142 | + src && window.jsFiles.push(src); | ||
143 | + scriptSrc = window.jsFiles.shift(); | ||
144 | + } | ||
145 | + | ||
146 | + if (!scriptSrc) { | ||
147 | + return; | ||
148 | + } | ||
149 | + | ||
150 | + script.src = scriptSrc; | ||
151 | + script.crossorigin = 'anonymous'; | ||
152 | + | ||
153 | + if (!retryMode) { | ||
154 | + script.onerror = function() { | ||
155 | + if (script.parentNode) { | ||
156 | + script.parentNode.removeChild(script); | ||
157 | + } | ||
158 | + | ||
159 | + loadJS(script.src, true); | ||
160 | + }; | ||
161 | + } | ||
162 | + | ||
163 | + script.onload = function() { | ||
164 | + loadJS(); | ||
165 | + }; | ||
166 | + | ||
167 | + ref.parentNode.insertBefore(script, ref.nextSibling); | ||
168 | + return script; | ||
169 | + }; | ||
170 | + | ||
171 | + loadJS(); | ||
172 | + }()); | ||
173 | + </script> | ||
174 | + {{!-- <script src="//{{devHost}}:{{port}}/libs.js?t={{startTime}}"></script> | ||
175 | + <script src="//{{devHost}}:{{port}}/{{module}}.{{page}}.js?t={{startTime}}"></script> --}} | ||
123 | {{^}} | 176 | {{^}} |
124 | <script>var STATIC_RESOURCE_PATH = '//cdn.yoho.cn/yohobuywap-node/{{version}}';</script> | 177 | <script>var STATIC_RESOURCE_PATH = '//cdn.yoho.cn/yohobuywap-node/{{version}}';</script> |
125 | <script src="//cdn.yoho.cn/yohobuywap-node/{{version}}/libs.js?t={{startTime}}" crossorigin="anonymous"></script> | 178 | <script src="//cdn.yoho.cn/yohobuywap-node/{{version}}/libs.js?t={{startTime}}" crossorigin="anonymous"></script> |
-
Please register or login to post a comment