javascript - 多个用户使用 Google 电子表格插件时的问题
问题描述
在为 Google 表格自行开发的插件中,添加了从侧栏中的 JavaScript 音频播放器播放声音文件的功能,具体取决于表格中的选择。有关代码本身,请参见此处。
当用户从 Marktetplace 安装插件时,插件一次只能对一个用户正常工作:当所选行更改时,通过右侧的播放器自动播放相应的声音文件(自动启动)-手边。
但是,当多个用户使用此插件时,各个浏览器中的音频播放器似乎相互干扰,使得音频文件被中断并重新开始,直到再次被中断,因此,以一个循环结束中断音频文件。因此,问题似乎是由多个用户运行加载项会永久中断并重新启动脚本。
我完全不知道从哪里开始调查这个错误。我发现,在多用户模式下,传递声音文件的 PHP 脚本会一遍又一遍地启动。
在单用户模式下,这个脚本只被调用一次。
可在此处访问可重现的示例;附加组件 > “播放音频”(需要 Google 帐户)。要重现错误,必须打开工作表两次(例如在两个浏览器中)。
解决方案
在表格中选择下一行时,查看电子表格侧边栏中接受的更新值答案的代码,问题是由于使用脚本属性存储引起的,因为任何打开侧边栏的用户都在覆盖脚本属性。
解决方案是使用用户属性存储。换句话说,
代替
PropertiesService.getScriptProperties()
利用
PropertiesService.getUserProperties();
资源
推荐阅读
- e-commerce - SAP Hybris 6.7 媒体管理
- python - PIL:我可以有多种尺寸的相同字体的文本吗?(Python)
- service - 推流生产中服务优先级的问题
- amazon-s3 - 使用 AWS IAM 角色和策略授予对具有特定“标签”的 s3 的访问权限
- regex - 正则表达式条件正向前瞻
- node.js - .toString 不将字节编码为 utf8 文本?
- python-2.7 - 加快 matplotlib 动画中的线条绘制
- jquery - 导航栏的引导下拉菜单不起作用(角度)
- java - 更改相对于锚点的视图大小
- windows - 如何在 Windows 中设置 docker 音量?