Jac*_*ack 7 javascript websocket
我的一位大学讲师指出,看到WebSockets用于文件传输会很有趣.我想可以使用base64对图像文件进行解码和编码,但是可以通过WebSocket发送JavaScript/CSS文件吗?
我正在使用的服务器是Node.js,我的浏览器是Google Chrome 16.
是的.您可以通过WebSockets(或AJAX)发送JavaScript和CSS.只要WebSocket服务器正确地对Javascript中的任何特殊Unicode字符进行UTF-8编码,您也不需要像对图像一样对CSS和JavaScript进行base64编码.
一旦通过WebSocket接收到Javascript或CSS,就可以使用以下机制加载它们(其中type是'script'或'css'):
function dynamic_load(type, content) {
var elem = document.createElement(type);
elem.type = (type === 'script') ? 'text/javascript' : 'text/css';
elem.innerHTML = content;
document.getElementsByTagName("head")[0].appendChild(elem);
}
Run Code Online (Sandbox Code Playgroud)
在IE 8及更早版本中,该机制可能有问题,但由于您使用的是WebSockets,我怀疑您的目标是现代浏览器.您可以从浏览器的Javascript控制台验证dynamic_load函数是否有效:
dynamic_load('script', "alert('hello world');");
Run Code Online (Sandbox Code Playgroud)