//轮训处理 Namespace.register("U.MD.O.P"); //设置是否允许连接 U.MD.O.P.isconnect = true; /* * 链接后台,并发送请求 */ U.MD.O.P.connect = function () { if (US.userInfo.userid) { //判断用户是否登录 U.MD.O.P.polling(["login", JSON.stringify({ //发送登录请求 pageId: US.pageId, userId: US.userInfo.userid, userName: US.userInfo.username, type: US.systemId })]); } }; /* * 数据处理 */ U.MD.O.P.dataAsyn = function () { } /* * 发送请求进入轮训 */ U.MD.O.P.polling = function (params) { if (U.MD.O.P.isconnect) { U.MD.O.P.isconnect = false; params = params || ["polling", US.userInfo.userid, US.pageId, US.systemId] var start = 0; var delimiter = "\r\n" var end = 0; var text = ""; var xhr = new XMLHttpRequest(); var data = ""; //var time = null; // var fun = function () { //clearTimeout(time) text = xhr.responseText; var istrue = true; while (start < text.length && istrue) { end = text.indexOf(delimiter, start);//获取数据的是否已经结束 if (end > -1) { data += text.substring(start, end); start = end + delimiter.length; try { U.MD.O.P.pollingAsyn({ value: JSON.parse(data) }) } catch (e) { console.log(e); } data = ""; } else { istrue = false; //time = setTimeout(fun, 500);// } } }; xhr.open("POST", US.SCOKET, true); xhr.onreadystatechange = function () { //获取数据 if (xhr.readyState == 3 && xhr.status == 200) { fun(); } //结束重连 else if (xhr.readyState == 4) { console.log(xhr); U.MD.O.P.isconnect = true; U.MD.O.P.connect(); } }; //超时重新连接 xhr.onerror = function (err) { console.log(err); }; try { //发送请求 xhr.send(U.A.Request.toAjaxFormat(params)); } catch (e) { console.log(e); } } } /* * 处理从后台返回的数据 * */ U.MD.O.P.pollingAsyn = function (r) { r = r.value; if (r) { //r是否有值 if (r[0] instanceof Array) { r = r[0]; } // console.log('获取到的数据:', r) var _i, _message, _iframe, _contentWindow; for (_i = 0; _i < r.length; _i++) { _message = r[_i]; switch (_message.type) { case 'us.word': //判断是否是word 的消息 // _iframe = $('#UD_Word' + _message.messageInfo.docId + ' iframe')[0]; _iframe = $('#doc iframe')[0]; if (_iframe) { _contentWindow = _iframe.contentWindow; if (_message.messageInfo.type == "updateName") { $('#UD_Word' + _message.messageInfo.docId + ' .U_MD_O_H_head_navigation_Title')[0].value = _message.messageInfo.name; } else if (_message.messageInfo.type == "insertModifyRecord") { _contentWindow.U.MD.O.W.Panel.syncHistory(_message.sendId, _message.messageInfo.historyid); } else if (_message.messageInfo.type == "addUser") { _contentWindow.U.MD.O.W.Panel.syncAddUser(_message.messageInfo.userIds, _message.sendId); } else {// if ($('#UD_Word' + _message.messageInfo.docId).css('display') == 'block') switch (_message.messageInfo.type) {// 判断消息种类 case 'update': _contentWindow.U.MD.O.W.E.updateEditorLine(_message.messageInfo); break; case 'add': _contentWindow.U.MD.O.W.E.addEditorLine(_message.messageInfo); break; case 'delete': _contentWindow.U.MD.O.W.E.deleteEditorLine(_message.messageInfo); break; } } } break; case 'us.nav': _iframe = $('#UD_Word' + _message.messageInfo.docId + ' iframe')[0]; if (_message.messageInfo.type == "updateName") { $('#UD_Word' + _message.messageInfo.docId + ' .U_MD_O_H_head_navigation_Title')[0].value = _message.messageInfo.name; } else if (_message.messageInfo.type == "addUser") { _contentWindow.U.MD.O.W.Panel.syncAddUser(_message.messageInfo.userIds, _message.sendId); } else if ($('#UD_Word' + _message.messageInfo.docId).css('display') == 'block') { _contentWindow = _iframe.contentWindow; switch (_message.messageInfo.type) {// 判断消息种类 case 'update': _contentWindow.U.MD.O.W.T.N.nowNavId == _message.messageInfo.navId && _contentWindow.U.MD.O.W.E.updateEditorLine(_message.messageInfo); break; case 'add': _contentWindow.U.MD.O.W.T.N.nowNavId == _message.messageInfo.navId && _contentWindow.U.MD.O.W.E.addEditorLine(_message.messageInfo); break; case 'delete': _contentWindow.U.MD.O.W.T.N.nowNavId == _message.messageInfo.navId && _contentWindow.U.MD.O.W.E.deleteEditorLine(_message.messageInfo); break; case 'addNav': _contentWindow.U.MD.O.W.T.N.Poll.addNav(_message.messageInfo); break; case 'updateNav': _contentWindow.U.MD.O.W.T.N.Poll.updateNav(_message.messageInfo); break; case 'deleteNav': _contentWindow.U.MD.O.W.T.N.Poll.deleteNav(_message.messageInfo); break; case 'updateLogo': _contentWindow.U.MD.O.W.T.N.Poll.updateLogo(_message.messageInfo); break; } } break; case 'us.excel': //判断是否是word 的消息 _iframe = $('#UD_Excel' + _message.messageInfo.docId + ' iframe')[0]; if (_iframe) { if (_message.messageInfo.type == "updateName") { $('#UD_Excel' + _message.messageInfo.docId + ' .U_MD_O_H_head_navigation_Title')[0].value = _message.messageInfo.name; } else if (_message.messageInfo.type == "addUser") { } else { _contentWindow = _iframe.contentWindow; switch (_message.messageInfo.type) {// 判断消息种类 case 'blur': _contentWindow.U.MD.O.E.Receiver.Blur(_message.messageInfo); break; case 'setBorder': _contentWindow.U.MD.O.E.Receiver.setBorder(_message.messageInfo); break; case "addLine": _contentWindow.U.MD.O.E.Receiver.addLine(_message.messageInfo); //添加行 break; case "delLine": _contentWindow.U.MD.O.E.Receiver.delLine(_message.messageInfo); //刪除行 break; case "addCol": _contentWindow.U.MD.O.E.Receiver.addCol(_message.messageInfo); //添加列 break; case "delCol": _contentWindow.U.MD.O.E.Receiver.delCol(_message.messageInfo); //刪除列 break; case "merge": _contentWindow.U.MD.O.E.Receiver.merge(_message.messageInfo); //合并单元格 break; case "splitCells": _contentWindow.U.MD.O.E.Receiver.splitCells(_message.messageInfo); //拆分单元格 break; case "rowExpanding": _contentWindow.U.MD.O.E.Receiver.rowExpanding(_message.messageInfo); //行板拉伸 break; case "colExpanding": _contentWindow.U.MD.O.E.Receiver.colExpanding(_message.messageInfo); //列板拉伸 break; case "addTask": _contentWindow.U.MD.O.E.Receiver.addTask(_message.messageInfo); break; case "deleteTask": _contentWindow.U.MD.O.E.Receiver.deleteTask(_message.messageInfo); break; case "reNameTask": _contentWindow.U.MD.O.E.Receiver.reNameTask(_message.messageInfo); break; case "img": _contentWindow.U.MD.O.E.Receiver.img(_message.messageInfo); //插入图片 break; case "imgChange": //图片拉伸及拖拽 _contentWindow.U.MD.O.E.Receiver.imgChange(_message.messageInfo); break; case "excelAddHref": //插入链接 _contentWindow.U.MD.O.E.Receiver.excelAddHref(_message.messageInfo); break; case "clearAContent": //删除链接 _contentWindow.U.MD.O.E.Receiver.clearAContent(_message.messageInfo); break; } } } break; case 'us.mindNetwork': // _iframe = $('#mindNetwork' + _message.messageInfo.docId)[0]; _iframe = $('#mindNetwork iframe')[0]; if (_iframe) { _contentWindow = _iframe.contentWindow; // if (_message.messageInfo.type == "addUser") { // _contentWindow.postMessage({ cid: cid, type: "mindNetwork_addUser" }, "*") // } // else // if ($('#mindNetwork' + _message.messageInfo.docId).css('display') == 'block') { switch (_message.messageInfo.type) {// 判断消息种类 case 'update': _contentWindow.postMessage({ info: _message.messageInfo, type: "mindNetwork_update" }, "*") break; case 'delete': _contentWindow.postMessage({ info: _message.messageInfo, type: "mindNetwork_delete" }, "*") break; case 'move': _contentWindow.postMessage({ info: _message.messageInfo, type: "mindNetwork_move" }, "*") break; } // } } break; case 'us.realTimeClass': _iframe = $('#studentClassRoom iframe')[0]; if (_iframe) { _contentWindow = _iframe.contentWindow; switch (_message.messageInfo.type) {// 判断消息种类 case 'update'://修改页码 _contentWindow.postMessage({ info: _message.messageInfo, type: "realTimeClass_update" }, "*") break; } // } } break; case 'us.cscl': _iframe = $('#futureClass iframe')[0]; if (_iframe) { _contentWindow = _iframe.contentWindow; _contentWindow.postMessage({ info: _message.messageInfo, type: _message.messageInfo.type }, "*"); } break; } } } //U.MD.O.P.polling(); //进入轮循 }