Phoenix LiveView 简介

说完了 LiveView 的优势,LiveView 当然也有着它的缺陷与劣势。这些劣势主要都是源于 LiveView 对 WebSocket 的依赖。

LiveView 需要 WebSocket 才能正常接收数据更新,因此即使用户把页面缓存之后,在离线状态下也是无法正常使用的。

而如果网络的延迟很高,对 LiveView 应用的用户体验也会有很明显的影响。如果需要实现 CSS 动画或者多人游戏这类对低延迟、高帧率有要求的功能时,LiveView 也显然不是合适的选择。

在此,我必须要为 LiveView 稍作开脱。毕竟,又有多少应用、框架能够实现这个受到物理世界因素限制的需求呢?大部分应用也只是通过缓存、过场动画等用户体验上的改善,让用户体会不到网络延迟的存在,而这些改善用 LiveView 也同样能够实现。而且,LiveView 团队已经在开发相关的功能尝试解决这些问题:

  1. 在断线状态对客户端更新进行缓存,连线之后上传更新。
  2. 提供开发环境下的延迟模拟功能,供开发者调试。