协作开发需要共享的 Web 浏览器
在之前的一篇文章中,我阐述了我们如何优化Visual Studio Live Share以进行 Web 开发,允许你与会话中的所有人共享本地服务器。这使得访客能够查看正在运行的应用并与之交互,同时实时编辑和调试它,从而带来真正高效的协作体验。然而,它也有一个潜在的限制:虽然每个人都使用相同的代码库和服务器,但任何浏览器交互(例如滚动、表单输入、按钮点击)仍然是独立执行的,因为前端代码是在每台机器上本地下载和执行的。这正是客户端应用分发的本质。
这种行为在很多情况下都很理想(例如,你们俩想在不打扰你的情况下探索应用),与屏幕共享相比,这是 Live Share 实现的独立性的主要优势。但是,在某些情况下,一起浏览 Web 应用也很有用(例如,你们想演示错误重现或展示功能的完成情况)。为此,您可以使用屏幕共享,但这也有其缺点:所有应用交互都在主机上执行,然后作为位图共享。因此,它对带宽的要求更高,并且可能导致较差的延迟和图像质量,具体取决于你们之间的距离以及网络拓扑/条件。
因此,我们设想:如果您能够在本地浏览器中查看和交互,并可以选择与所有协作人员同步您的操作,会怎么样?这样,交互会立即发生(并且您的内部循环紧凑),但会在团队中共享。有点像一个分布式、最终一致的 Web 应用程序。这种体验似乎很有用,它实际上代表了我们最持久的功能请求之一。因此,我们决定通过与现有的 Visual Studio Code 扩展集成来尝试一下它的外观。
不要只是分享,还要浏览!
如果您下载了浏览器预览扩展程序,并在主持 Live Share 会话时打开一个新的预览窗口,该窗口也会自动在所有访客的设备上打开(假设他们已安装浏览器预览扩展程序)。之后,如果您(或任何访客)导航到另一个 URL、刷新页面、前进/后退、滚动、点击按钮、在表单字段中输入内容、模拟设备等,这些操作都将与所有人同步。使用完该窗口后,您可以直接关闭它,它也会在所有人的设备上关闭。
它感觉就像屏幕共享,只是更快捷,而且每个人都保留了自己的光标。这是因为每个人实际上都在运行自己的 Web 应用本地副本,并且只传输同步各自交互所需的元数据(例如,鼠标点击 x/y 坐标)。这使得网络要求极低,并确保每个参与者的操作结果立即可见,就像编辑共享文档一样。
我们认为此功能可以帮助解决一些关键场景,例如能够在结对开发时浏览文档,或协作搜索代码示例。您还可以使用它来演示(并调试!)您正在共同开发的 Web 应用,以便会话中的每个人都能保持一致。确实如此……不过,这只是一个非常早期的实验,因此,我们很想知道它是否有用,如果有用,还缺少什么👍
文章来源:https://dev.to/lostintangent/collaborative-browsing-within-visual-studio-code-4h92