update files

This commit is contained in:
nuintun
2015-12-02 17:58:14 +08:00
parent 3671a3c456
commit ad789f61f5
2 changed files with 107 additions and 53 deletions

View File

@@ -6,48 +6,81 @@
importScripts('../../terminal/index.js');
var ACTIVE;
var RUNTIMECACHE = {};
var xterm;
function send(name, xterm){
postMessage({
name: name,
screen: xterm.toString('html')
});
}
onconnect = function (event){
var port = event.ports[0];
onmessage = function (event){
var xterm;
var message = event.data;
port.onmessage = function (event){
var message = event.data;
switch (message.action) {
case 'open':
xterm = RUNTIMECACHE[message.name];
function send(name, xterm){
var data = {
name: name,
screen: xterm.toString('html')
};
if (!xterm) {
xterm = new AnsiTerminal(120, 60, 0);
xterm.newline_mode = true;
RUNTIMECACHE[message.name] = xterm;
}
port.postMessage(data);
}
ACTIVE = message.name;
switch (message.action) {
case 'open':
if (!xterm) {
xterm = new AnsiTerminal(120, 60, 0);
xterm.newline_mode = true;
}
send(message.name, xterm);
break;
case 'close':
delete RUNTIMECACHE[message.name];
break;
case 'write':
xterm = RUNTIMECACHE[message.name];
if (ACTIVE === message.name) {
send(message.name, xterm);
break;
case 'close':
delete xterm.reset();
break;
case 'write':
xterm.write(message.data);
send(message.name, xterm);
} else {
setTimeout(function (){
xterm.write(message.data);
}, 16);
}
break;
}
break;
}
};
//function send(name, xterm){
// postMessage({
// name: name,
// screen: xterm.toString('html')
// });
//}
//
//switch (message.action) {
// case 'open':
// xterm = RUNTIMECACHE[message.name];
//
// if (!xterm) {
// xterm = new AnsiTerminal(120, 60, 0);
// xterm.newline_mode = true;
// SCREENCACHE[message.name] = '';
// RUNTIMECACHE[message.name] = xterm;
// }
//
// ACTIVE = message.name;
//
// if (SCREENCACHE[message.name]) {
// xterm.write(SCREENCACHE[message.name]);
// SCREENCACHE[message.name] = '';
// }
//
// send(message.name, xterm);
// break;
// case 'close':
// delete RUNTIMECACHE[message.name];
// break;
// case 'write':
// xterm = RUNTIMECACHE[message.name];
//
// if (ACTIVE === message.name) {
// xterm.write(message.data);
// send(message.name, xterm);
// } else {
// SCREENCACHE[message.name] += message.data;
// }
// break;
//}
};