# JS卡片概述

JS卡片是使用类Web范式（HML+CSS+JSON）开发页面的卡片，现在已经支持FA模型和Stage模型两种应用模型。开发指导请参见JS卡片开发指导（Stage模型）和JS卡片开发指导（FA模型）。在开发新卡片时，推荐采用ArkTS声明式来构建UI，声明式和类web范式差异点可参考ArkUI简介。

#### 实现原理

JS卡片实现原理如图1所示。

**图1** JS卡片实现原理

卡片使用方包含以下模块：

*   卡片使用：包含卡片的创建、删除、请求更新等操作。
    
*   通信适配层：由HarmonyOS SDK提供，负责与卡片管理服务通信，用于将卡片的相关操作指令发送到卡片管理服务。
    

卡片管理服务包含以下模块：

*   周期性刷新：在卡片添加后，根据卡片的刷新策略启动定时任务周期性触发卡片的刷新。
    
*   卡片缓存管理：在卡片添加到卡片管理服务后，对卡片的视图信息进行缓存，以便下次获取卡片时可以直接返回缓存数据，降低时延。
    
*   卡片生命周期管理：对于卡片切换到后台或者被遮挡时，暂停卡片的刷新；以及卡片的升级/卸载场景下对卡片数据的更新和清理。
    
*   卡片使用方对象管理：对卡片使用方的RPC对象进行管理，用于使用方请求进行校验以及对卡片更新后的回调处理。
    
*   通信适配层：负责与卡片使用方和提供方进行RPC通信。
    

卡片提供方包含以下模块：

*   卡片服务：由卡片提供方开发者实现，开发者实现生命周期处理创建卡片、更新卡片以及删除卡片等请求，提供相应的卡片服务。
    
*   卡片提供方实例管理模块：由卡片提供方开发者实现，负责对卡片管理服务分配的卡片实例进行持久化管理。
    
*   通信适配层：由HarmonyOS SDK提供，负责与卡片管理服务通信，用于将卡片的更新数据主动推送到卡片管理服务。
    

实际开发时只需要作为卡片提供方进行卡片内容的开发，卡片使用方和卡片管理服务由系统自动处理。