singler 同时编辑为什那么输入的内容为undefined,见图1,2.. 图3,4为前端配置图,图5为singler编辑类
singler 同时编辑为什那么输入的内容为undefined
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
10条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
根据您提供的信息,您遇到的问题是在一个基于SignalR实现的多人实时协作编辑场景中,“Current Diagnosis:”显示为undefined。
首先,我们梳理一下整个流程:
-
前端使用
signalR. HubConnectionBuilder
构建了一个与服务器端editorHub
的连接,并在连接建立成功后调用JoinEdit
方法将当前用户添加至指定房间(由editorRoomId
标识)。 -
当用户在前端编辑器(例如id为
txtcurDiagnosisDetails
的textarea)中输入内容时,触发input
事件,进而调用UpdatePage
方法将内容同步到服务器。 -
服务器端
UpdatePage
方法接收到内容更新后,会把内容保存到_editingContent
变量,并通过Clients.Group(pageId).SendAsync("UpdatePage", editingContent);
将更新发送给连接到同一房间的所有客户端。 -
客户端接收到来自服务器的更新消息后,会执行回调函数
UpdatePage(userId, content)
,将接收到的content
用于更新页面上的诊断详情内容。
然而,您提到的现象是“Current Diagnosis:”处显示为undefined,这可能的原因及解决步骤如下:
原因分析:
-
前端未正确获取或设置初始内容:在初始化页面时,前端没有正确地从服务器获取或本地存储加载初始的诊断内容,导致
document.getElementById("txtcurDiagnosisDetails").value
为空。解决方案:确保在初始化页面时调用一个方法从服务器或本地存储加载诊断详情,并将其赋值给textarea元素。
-
SignalR消息传递异常:可能是由于服务器端
UpdatePage
方法没有正确地将内容广播到相应房间的客户端,或者是客户端没有正确处理接收到的消息。解决方案:检查
UpdatePage
方法中是否确实有非空内容被发送出去,以及客户端的UpdatePage
回调函数中的逻辑是否正确将content
应用于界面展示。 -
编辑内容变量问题:如果用户在初次加载页面时没有输入任何内容就尝试查看已有的诊断详情,而服务器端的
_editingContent
并没有得到初始化,则可能会返回undefined。解决方案:在
JoinEdit
方法中,如果页面存在已有内容,应从数据库或其他持久化存储读取并发送给新加入的客户端,确保其能显示正确的初始诊断详情。
建议您按照上述分析排查代码,尤其是关注在页面加载和内容更新时的数据流向。若前端在初始化时没有获取到诊断详情内容,您可以尝试修改前端代码,在连接建立之后立即调用一个服务端方法获取初始内容,例如:
connection.start().then(() => { // 加入房间后立刻获取当前页面的诊断详情 connection.invoke("GetCurrentDiagnosis", editorRoomId).then((initialContent) => { if (initialContent) { document.getElementById("txtcurDiagnosisDetails").value = initialContent; } }).catch(err => console.error(err.toString())); // ... 其他 SignalR 相关逻辑 });
同时,确保服务器端提供对应的
GetCurrentDiagnosis
方法或其他方式来提供初始内容。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
- ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
- ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
- ¥15 SPSS分类模型实训题步骤
- ¥15 求解决扩散模型代码问题
- ¥15 工创大赛太阳能电动车项目零基础要学什么
- ¥20 limma多组间分析最终p值只有一个
- ¥15 nopCommerce开发问题
- ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
- ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决