- Flutter开发之StatelessWidget和StatefulWidget
得_道
一、无状态StatelessWidgetStatelessWidget通常是一些没有状态(State,也可以理解成data)需要维护的Widget:它们的数据通常是直接写死(放在Widget中的数据,必须被定义为final,为什么呢?我在下一个章节讲解StatefulWidget会讲到);从parentwidget中传入的而且一旦传入就不可以修改;从InheritedWidget获取来使用的数据(
- flutter provider使用及其原理分析
某非著名程序员
官方刷新框架provider及其实现原理。Provider:实现数据改变时,对应的局部widget自动刷新。响应式的实现。解决InheritedWidget由上而下的传递方式,实现model改变,widget自动刷新provider的使用定义对象并继承ChangeNotifier,在变化的时候发送通知方法notifyListeners:classOrgInfoextendsChangeNotifi
- Flutter中状态管理选项的比较:利弊探索
独立开发者张张
Flutter开发技术flutter开发语言
Flutter应用程序开发的一个关键方面是管理状态,这确保了整个应用程序的数据一致性和更新。然而,Flutter提供了多种状态管理解决方案,每种解决方案都有自己的优缺点。在这篇博客中,我们将探讨Flutter中一些流行的状态管理选项,并讨论它们的优缺点。这些状态管理库如下:文章目录InheritedWidget使用流的BLoC(业务逻辑组件)模式ProviderReduxMobXRiverpodG
- Flutter状态管理Provider
zZ_d205
链接:https://www.jianshu.com/p/93e97fd0f298Google2019I/O大会上被谷歌推荐,原本谷歌的provide被弃用,与大部分状态管理一样使用了InheritedWidget。基于Provider3.0上一篇Flutter状态管理Provider(一)ChangeNotifierProvider()它与scoped_model差不多,不同的是它使用mixin
- 探索 Flutter 的 Provider:介绍与用法
Zender Han
Flutter入门学习flutter
引言在Flutter应用开发中,状态管理始终是一个核心话题。随着Flutter的不断发展,各种状态管理方案应运而生。Provider,作为一个轻量级且高效的状态管理库,在社区中获得了广泛的认可和使用。本文将深入探讨Provider的最新特性和用法,帮助开发者更好地在Flutter应用中实现状态管理。什么是Provider?Provider是一个基于Flutter的InheritedWidget的包
- flutter的状态管理学习
yujunlong3919
flutterflutter学习javascript
文章目录1.flutterwidget分类2.代理组件又分为3.状态state数据4.刷新数据变化5.code1.flutterwidget分类组合渲染代理2.代理组件又分为Positioned向父组件传递数据InheritedWidget向子组件传递数据3.状态state数据状态就是用到了向子组件传递数据,并且需要刷新的时候刷新组件4.刷新数据变化获取并在改变的时候会导致刷新dependOnIn
- 从零开始的Flutter之旅: Provider
午后一小憩
往期回顾从零开始的Flutter之旅:StatelessWidget从零开始的Flutter之旅:StatefulWidget从零开始的Flutter之旅:InheritedWidget在上篇文章中我们介绍了InheritedWidget,并在最后引发出一个问题。虽然InheritedWidget可以提供共享数据,并且通过getElementForInheritedWidgetOfExactTyp
- Flutter中的Tree
Kevin写代码
flutteriosandroidstudio
一、Widget组合类(CompositeWidgets)如Container、Scaffold、MaterialApp等,以及通过继承StatelessWidget和StatefulWidget的类。代理类(ProxyWidgets)如InheritedWidget,这是一种功能型组件,可以高效快捷地实现共享数据的跨组件传递;InheritedWidget是一个代理类Widget,主要用于在De
- flutter 状态管理 InheritedWidget 原理分析
蜗牛安卓_郝郝
最近公司做技术分享写的文章的demoFlutter中的InheritedWidget状态管理1.InheritedWidget是什么?InheritedWidget是Flutter中非常重要的一个功能型组件,它提供了一种数据在widget树中从上到下传递、共享的方式,比如我们在应用的根widget中通过InheritedWidget共享了一个数据,那么我们便可以在任意子widget中来获取该共享的
- Flutter 官方状态管理 Provider基本使用
xiangzhihong8
Flutter入门与实战flutterjavascript前端
当App的复杂性发展到一定程度,就会出现一个页面中不同深度的子Widget需要共享访问同一个数据状态,甚至不同页面需要共享同一个状态的情况,这时我们可能会想到InheritedWidget。InheritedWidget是Flutter中非常重要的一个功能型组件,它提供了一种在Widget树中从上到下共享数据的方式,比如我们在应用的根Widget中通过InheritedWidget共享了一个数据,
- 第二百一十四回
talk_8
一起TalkFlutter吧前端移动开发Flutter
文章目录概念介绍实现方法示例代码经验总结我们在上一章回中介绍了组件之间共享数据相关的内容,本章回中将介绍全局共享数据.闲话休提,让我们一起TalkFlutter吧。概念介绍我们在上一章回中介绍了使用InheritedWidget组件共享数据的方法,不过这种共享只限于父组件与子组件之间。本章回中将介绍一种全局共享数据的方式,这里说的全局是指在任意组件之间。我们需要借助provider包实现全局数据共
- 第二百一十三回
talk_8
一起TalkFlutter吧前端java移动开发Flutter
文章目录概念介绍实现方法示例代码经验总结我们在上一章回中介绍了组件之间共享数据相关的内容,本章回中将介绍全局共享数据.闲话休提,让我们一起TalkFlutter吧。概念介绍我们在上一章回中介绍了使用InheritedWidget组件共享数据的方法,不过这种共享只限于父组件与子组件之间。本章回中将介绍一种全局共享数据的方式,这里说的全局是指在任意组件之间。我们需要借助provider包实现全局数据共
- flutter学习-day13-功能型组件和状态共享
鹏多多.
flutterflutter学习
目录导航返回拦截InheritedWidget数据共享跨组件状态共享事件总线EventBus依赖注入Provider颜色和主题颜色字符串转成color对象颜色亮度MaterialColor类主体异步UI更新FutureBuilderStreamBuilder对话框本文学习和引用自《Flutter实战·第二版》:作者:杜文1.导航返回拦截为了避免用户误触返回按钮而导致App退出,在很多App中都拦截
- Flutter - 数据共享
恍然如梦_b700
在开发中我们经常会用到InheritedWidget,可以在它的任意子widget获取到数据();}@overrideboolupdateShouldNotify(MyDataoldWidget){returnoldWidget.data!=data;}}classInheritedDemoextendsStatefulWidget{@override_InheritedDemoStatecrea
- 从零开始的Flutter之旅: InheritedWidget
午后一小憩
往期回顾从零开始的Flutter之旅:StatelessWidget从零开始的Flutter之旅:StatefulWidget在之前的文章中,介绍了StatelessWidget与StatefulWidget的特性与它们的呈现原理。这期要聊的是它们的另一个兄弟InheritedWidget。特性InheritedWidget是Flutter中的一个非常重要的功能组件,它能够提供数据在widget树
- Flutter跨组件传递数据
JoeLittleStar
Flutter
除了属性传值,对于数据的跨层传递,Flutter还提供了三种方案:InheritedWidget,Notification,EventBus。InheritedWidgetInheritedWidget是Flutter中的一个功能型Widget,适用于在Widget树中共享数据的场景。通过它,我们可以高效地将数据在Widget树中进行跨层传递。Theme类是通过InheritedWidget实现的
- BlocProvider的三种方法
朋朋彭哥
Bloc模式的出现,主要用于分离UI组件和逻辑业务,特别对于复杂的app状态管理,能有效做到UI和业务解耦.image简单方法SimpleBlocProviderBlocProvider直接继承InheritedWidget,这样其子Widget都能访问内部数据.但是因为没有dispose方法,因此无法释放资源.对于简单应用,完全可以使用该方法而不必关心是否会浪费资源拖慢系统.import'pac
- 跟我学flutter:细细品Widget(三)ProxyWidget,InheritedWidget
王二蛋和他的狗
前言ProxyWidget作为抽象基类本身没有任何功能,但他有两个实现类ParentDataWidget&InheritedElement源码abstractclassProxyWidgetextendsWidget{constProxyWidget({Key?key,requiredthis.child}):super(key:key);finalWidgetchild;}InheritedWi
- Flutter学习 功能型Widget
RikkaTheWorld
Flutterflutter
文章目录1.WillPopScope1.1示例2.InheritedWidget2.1didChangeDependencies2.2深入了解InheritedWidget3.Provider3.1实现简易Provider3.1.1购物车示例4.主题Theme5.ValueListenableBuilder5.1示例6.异步UI更新1.WillPopScope是导航返回拦截的组件,类似于Andro
- 使用InheritedWidget实现管理父Widget传值到子Widget
嗨哒哥
使用InheritedWidget实现管理父Widget传值到子Widget在开发过程中,父Widget拿到网络请求值,或者当前状态改变需要更改子Widget的时候,就涉及到把父Widget获取到的值传递给子Widget。这个时候可以通过子Widget定义的时候定义好要接收的方式;方法固然可行,但是有没有别的更好传值方式?这里我们介绍下使用InheritedWidget来实现在当前页面数据共享。先
- Flutter 笔记 | Best Practice Tips for Flutter
川峰
FlutterflutterFlutter最佳实践Flutter开发规范Flutter建议指南
1.保持build方法纯净build方法必须是纯粹的/没有任何不需要的东西。这是因为有一些外部因素可以触发一个新的小部件构建,下面是一些例子:Routepop/push屏幕大小的调整,通常是因为键盘显示或屏幕方向的改变父部件重新创建了它的子部件Widget依赖的InheritedWidget(Class.of(context)模式)发生变化DON’T:@overrideWidgetbuild(Bu
- Flutter -深入理解 InheritedWidget使用与实现机制
wkk_ly
androidflutterflutterandroid
InheritedWidget使用&原理简介在Tree中从上往下高效传递数据的基类widget,定义为:abstractclassInheritedWidgetextendsProxyWidget作用&特点:在子widget对应的Element内部,可获取从当前Element节点到根Element节点路径上的所有InheritedElement实例,进而获取相应的InheritedWidget实例
- 从InheritedWidget深入了解 Flutter 状态管理机制(上)
岛上码农
Flutter入门与实战flutterandroidiosApp开发跨平台
本文翻译自Flutter官方推荐的文章:ManagingFlutterApplicationStateWithInheritedWidgets。通过官网文档或推荐文章,能够让我们更好地了解Flutter的状态管理机制。前言通常来说,交互式应用可以分为三个部分:Model,View和Controller,也就是我们常说的MVC模式。使用过Flutter样例的人会对使用Widget和回调方式来构建视图
- Flutter视图原理之StatefulWidget,InheritedWidget
Super-B
flutterandroiddart
目录StatefulElement1.构造函数2.build3._firstBuild3.didChangeDependencies4.setStateInheritedElement1.Element类2._updateInheritance3.InheritedWidget数据向下传递3.1dependOnInheritedWidgetOfExactType4.InheritedWidget的
- InheritedWidget 原理
烟影很美
一.使用classParentextendsStatefulWidget{constParent({Key?key}):super(key:key);}class_ParentStateextendsState{boolinContainer=false;finalGlobalKey_gk=GlobalKey();@overrideWidgetbuild(BuildContextcontext){
- Flutter----Stream讲解
依然ゝ心碎
Flutter/Dart基础Flutter/Dartflutterdart
StreamStream在Flutter中也是属于非常关键的概念,就好比前面我有写过一篇event_bus的文章,我就是用Stream去做的,有兴趣的可以去前面看看。在Flutter中,状态管理出了本身自带的InheritedWidget之外,还有什么rxdart,Bolc,redux,provider以及别的大佬们写的插件。但是不管是什么状态管理的模式,我看到的基本都是离不开Stream的封装。
- Flutter Riverpod 全面深入解析,为什么官方推荐它?
快乐的程序猿
随着Flutter的发展,这些年Flutter上的状态管理框架如“雨后春笋”般层出不穷,而近一年以来最受官方推荐的状态管理框架无疑就是Riverpod,甚至已经超过了Provider,事实上Riverpod官方也称自己为“Provider,但与众不同”。Provider本身用它自己的话来说是“InheritedWidget的封装,但更简单且复用能力更强。”,而Riverpod就是在Provider
- BuildContext与InheritedWidget
DramaScript
在Flutter中Widjet,State,BuildContext,InheritedWidget在整个小部件里都是非常重要的概念。如何自定义,如何使用都需要对这几个概念十分了解。BuildContextBuildContext只不过是对构建的所有窗口小部件的树结构中的窗口小部件的位置的引用。简而言之,将BuildContext视为Widgets树的一部分,Widget将附加到此树。一个Buil
- Fiutter- 案例4 (选择话题Provider)
盛世光阴
前言我们通过一个实际页面来使用并且理解一下FlutterProvider的使用,了解下Provider如果进行状态存储以及共享页面微信图片_20220604131605.jpg微信图片_20220604131740.jpgInheritedWidgetInheritedWidget是一个功能性的组件,可以在组件树种从上往下的进行数据共享,定义在InheritedWidget组件中的数据可以被其子节
- flutter-provider学习笔记
yujunlong3919
flutterflutter
文章目录1.InheritedWidget2.StatefulWidget3.StatelessWidget4.State4.1setState->_element!.markNeedsBuild()4.2build->Widgetbuild(BuildContextcontext);5.问题6.常用的类6.1继承关系6.2InheritedProvider6.3Provider.of7.Sele
- 统一思想认识
永夜-极光
思想
1.统一思想认识的基础,才能有的放矢
原因:
总有一种描述事物的方式最贴近本质,最容易让人理解.
如何让教育更轻松,在于找到最适合学生的方式.
难点在于,如何模拟对方的思维基础选择合适的方式. &
- Joda Time使用笔记
bylijinnan
javajoda time
Joda Time的介绍可以参考这篇文章:
http://www.ibm.com/developerworks/cn/java/j-jodatime.html
工作中也常常用到Joda Time,为了避免每次使用都查API,记录一下常用的用法:
/**
* DateTime变化(增减)
*/
@Tes
- FileUtils API
eksliang
FileUtilsFileUtils API
转载请出自出处:http://eksliang.iteye.com/blog/2217374 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
- 各种新兴技术
不懂事的小屁孩
技术
1:gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
现在构建系统常用到maven工具,现在有更容易上手的gradle,
搭建java环境:
http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/
搭建android环境:
http://m
- tomcat6的https双向认证
酷的飞上天空
tomcat6
1.生成服务器端证书
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 36
- 托管虚拟桌面市场势不可挡
蓝儿唯美
用户还需要冗余的数据中心,dinCloud的高级副总裁兼首席营销官Ali Din指出。该公司转售一个MSP可以让用户登录并管理和提供服务的用于DaaS的云自动化控制台,提供服务或者MSP也可以自己来控制。
在某些情况下,MSP会在dinCloud的云服务上进行服务分层,如监控和补丁管理。
MSP的利润空间将根据其参与的程度而有所不同,Din说。
“我们有一些合作伙伴负责将我们推荐给客户作为个
- spring学习——xml文件的配置
a-john
spring
在Spring的学习中,对于其xml文件的配置是必不可少的。在Spring的多种装配Bean的方式中,采用XML配置也是最常见的。以下是一个简单的XML配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.or
- HDU 4342 History repeat itself 模拟
aijuans
模拟
来源:http://acm.hdu.edu.cn/showproblem.php?pid=4342
题意:首先让求第几个非平方数,然后求从1到该数之间的每个sqrt(i)的下取整的和。
思路:一个简单的模拟题目,但是由于数据范围大,需要用__int64。我们可以首先把平方数筛选出来,假如让求第n个非平方数的话,看n前面有多少个平方数,假设有x个,则第n个非平方数就是n+x。注意两种特殊情况,即
- java中最常用jar包的用途
asia007
java
java中最常用jar包的用途
jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法. w
- ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法
百合不是茶
jsjson编码返回异常
一:ajax获取自定义Struts框架中的json编码 出现以下 问题:
1,强制flush输出 json编码打印在首页
2, 不强制flush js会解析json 打印出来的是错误的jsp页面 却没有跳转到错误页面
3, ajax中的dataType的json 改为text 会
- JUnit使用的设计模式
bijian1013
java设计模式JUnit
JUnit源代码涉及使用了大量设计模式
1、模板方法模式(Template Method)
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。
 
- Linux常用命令(摘录)
sunjing
crondchkconfig
chkconfig --list 查看linux所有服务
chkconfig --add servicename 添加linux服务
netstat -apn | grep 8080 查看端口占用
env 查看所有环境变量
echo $JAVA_HOME 查看JAVA_HOME环境变量
安装编译器
yum install -y gcc
- 【Hadoop一】Hadoop伪集群环境搭建
bit1129
hadoop
结合网上多份文档,不断反复的修正hadoop启动和运行过程中出现的问题,终于把Hadoop2.5.2伪分布式安装起来,跑通了wordcount例子。Hadoop的安装复杂性的体现之一是,Hadoop的安装文档非常多,但是能一个文档走下来的少之又少,尤其是Hadoop不同版本的配置差异非常的大。Hadoop2.5.2于前两天发布,但是它的配置跟2.5.0,2.5.1没有分别。 &nb
- Anychart图表系列五之事件监听
白糖_
chart
创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。
以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下:
<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作&quo
- Web前端相关段子
braveCS
web前端
Web标准:结构、样式和行为分离
使用语义化标签
0)标签的语义:使用有良好语义的标签,能够很好地实现自我解释,方便搜索引擎理解网页结构,抓取重要内容。去样式后也会根据浏览器的默认样式很好的组织网页内容,具有很好的可读性,从而实现对特殊终端的兼容。
1)div和span是没有语义的:只是分别用作块级元素和行内元素的区域分隔符。当页面内标签无法满足设计需求时,才会适当添加div
- 编程之美-24点游戏
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class PointGame {
/**编程之美
- 主页面子页面传值总结
chengxuyuancsdn
总结
1、showModalDialog
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口时,用于返回窗口的值
主界面
var sonValue=window.showModalDialog("son.jsp");
子界面
window.retu
- [网络与经济]互联网+的含义
comsci
互联网+
互联网+后面是一个人的名字 = 网络控制系统
互联网+你的名字 = 网络个人数据库
每日提示:如果人觉得不舒服,千万不要外出到处走动,就呆在床上,玩玩手游,更不能够去开车,现在交通状况不
- oracle 创建视图 with check option
daizj
视图vieworalce
我们来看下面的例子:
create or replace view testview
as
select empno,ename from emp where ename like ‘M%’
with check option;
这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果:
select * from testv
- ToastPlugin插件在cordova3.3下使用
dibov
Cordova
自己开发的Todos应用,想实现“
再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。
ToastPlugin.java
package&nbs
- C语言22个系统函数
dcj3sjt126com
cfunction
C语言系统函数一、数学函数下列函数存放在math.h头文件中Double floor(double num) 求出不大于num的最大数。Double fmod(x, y) 求整数x/y的余数。Double frexp(num, exp); double num; int *exp; 将num分为数字部分(尾数)x和 以2位的指数部分n,即num=x*2n,指数n存放在exp指向的变量中,返回x。D
- 开发一个类的流程
dcj3sjt126com
开发
本人近日根据自己的开发经验总结了一个类的开发流程。这个流程适用于单独开发的构件,并不适用于对一个项目中的系统对象开发。开发出的类可以存入私人类库,供以后复用。
以下是开发流程:
1. 明确类的功能,抽象出类的大概结构
2. 初步设想类的接口
3. 类名设计(驼峰式命名)
4. 属性设置(权限设置)
判断某些变量是否有必要作为成员属
- java 并发
shuizhaosi888
java 并发
能够写出高伸缩性的并发是一门艺术
在JAVA SE5中新增了3个包
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。
- Spring Security(11)——匿名认证
234390216
Spring SecurityROLE_ANNOYMOUS匿名
匿名认证
目录
1.1 配置
1.2 AuthenticationTrustResolver
对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticat
- NODEJS项目实践0.2[ express,ajax通信...]
逐行分析JS源代码
Ajaxnodejsexpress
一、前言
通过上节学习,我们已经 ubuntu系统搭建了一个可以访问的nodejs系统,并做了nginx转发。本节原要做web端服务 及 mongodb的存取,但写着写着,web端就
- 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
lhbthanks
javahtmlstrutscheckbox
第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
- 003.Kafka基本概念
nweiren
hadoopkafka
Kafka基本概念:Topic、Partition、Message、Producer、Broker、Consumer。 Topic: 消息源(Message)的分类。 Partition: Topic物理上的分组,一
- Linux环境下安装JDK
roadrunners
jdklinux
1、准备工作
创建JDK的安装目录:
mkdir -p /usr/java/
下载JDK,找到适合自己系统的JDK版本进行下载:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
把JDK安装包下载到/usr/java/目录,然后进行解压:
tar -zxvf jre-7
- Linux忘记root密码的解决思路
tomcat_oracle
linux
1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码 2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断. 3: grub启动菜单中加入 single以单用户进入系统. 4:用以上方法mount到根分区把/etc/passwd中的root密码去除 例如: ro
- 跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现
xueyou
jsonpjquery框架UIhtml5
postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,p