如果 socket.io 脚本是可选的,那么你可以实现脚本的延迟加载:
function lazyLoad(url, callback) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onload = script.onreadystatechange = function() {
if (script.loaded == false && (!this.readyState || this.readyState == 'complete')) {
script.loaded = true;
console.log('script loaded');
callback();
}
};
script.onerror = function() {
console.log('error loading');
}
document.body.appendChild(script);
}
然后以这种方式使用它:
lazyLoad('/socket.io/socket.io.js', function() {
try {
var socket = io.connect('http://192.168.0.15:8123');
} catch(e) {
console.log(e);
}
});
顺便说一句,请确保您在同一台服务器上加载并连接到 socket.io,否则您将面临 CORS 问题以及基于不同浏览器安全策略的许多安全限制。