请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

mmm223

金牌服务用户

4

主题

12

帖子

38

积分

金牌服务用户

积分
38
最新发帖
mmm223
金牌服务用户   /  发表于:2024-6-5 15:48  /   查看:135  /  回复:4
1金币
之前我在论坛里找到了关于websocket通信的例子,里面有关于复制粘贴的部分的代码,

  1.   function onCommandExecute(args) {

  2.     if (!args.command) {
  3.       return
  4.     }
  5.     if (!args.command.cmd) {
  6.       return
  7.     }
  8.     spread.undoManager().clear()
  9.     switch (args.command.cmd) {
  10.       // 不向其他客户端同步的command类型写在这里
  11.       case 'zoom':
  12.         return
  13.       default:
  14.         break
  15.     }
  16.     console.log('args', args.command);
  17.     let sendMsg = {
  18.       type: 'direct_execute',
  19.       sheetName: search.gridKey,
  20.       data: args.command,
  21.       sheetIndex: sheetIndexRef.current,
  22.     }
  23.     if (args.command.cmd === "clipboardPaste") {
  24.       //查看是否过界
  25.       const pastedRange = args.command.pastedRanges[0]
  26.       const addRowCount = pastedRange.row + pastedRange.rowCount - totalRef.current
  27.       if (addRowCount > 0) {
  28.         sendMsg = {
  29.           ...sendMsg,
  30.           batch_row_start: totalRef.current + 1,
  31.           batch_row_end: pastedRange.row + pastedRange.rowCount - 1
  32.         }
  33.       }
  34.     }
  35.     const jsonMsg = JSON.stringify(sendMsg)
  36.     console.log('jsonMsg', blob, jsonMsg, jsonMsg.length)
  37.     !isEmpty(ws) && ws.send(jsonMsg)
  38.   }
复制代码
问题就在于这个args.command这个内容特别的大,是不是会把当前的内容,包括html,样式 全部都要传输过去吗?每次辅助一点点内容,上来就是好几mb,我这里的websocket立马就断了,我就想问问是不是一定得全部都传,能不能做点优化?还是我的代码问题,我看 在什么数据都没有的情况下,随便复制粘贴一下,其实也有个几百kb呢

最佳答案

查看完整内容

您好,请参考下图粘贴的Command输出的结果: 它与上图中的参数存在一些区别,也就是说,官方文档中的Command参数是执行这个Command的最低要求,其他的参数都是可选项。

4 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 15:48:42
来自 5#
您好,请参考下图粘贴的Command输出的结果:

a6e60b090f1f772ac58eb3c57629eb4.png937279052.png

它与上图中的参数存在一些区别,也就是说,官方文档中的Command参数是执行这个Command的最低要求,其他的参数都是可选项。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 17:52:02
2#
您好,因为复制粘贴需要携带大量的样式信息,所以命令中的数据会很大。

可以参考这个例子中的Sample,一般来说不是很需要将所有的数据都传输过去:https://demo.grapecity.com.cn/sp ... ands#clipboardpaste

image.png252001342.png
回复 使用道具 举报
mmm223
金牌服务用户   /  发表于:2024-6-6 09:40:48
3#
Joestar.Xu 发表于 2024-6-5 17:52
您好,因为复制粘贴需要携带大量的样式信息,所以命令中的数据会很大。

可以参考这个例子中的Sample,一 ...

你好 我还不是很明白,所以这段是要在监听到复制粘贴操作的时候执行,那到必要的数据对吧,那这个数据在哪里取呢?我没找到啊
回复 使用道具 举报
mmm223
金牌服务用户   /  发表于:2024-6-6 10:22:39
4#
Joestar.Xu 发表于 2024-6-5 17:52
您好,因为复制粘贴需要携带大量的样式信息,所以命令中的数据会很大。

可以参考这个例子中的Sample,一 ...

这不就是个直接执行复制粘贴的方法吗? 跟我的诉求好像没关系吧?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部