课程章节介绍
同学你好呀,咱们接着看这个Slide,聊一聊在Visualforce页面里,怎么同时发起好几个长时间运行的服务调用。
你可能会遇到这种情况:页面上需要去查两个不同产品的库存,或者不同系统的数据。以前,你可能一次发出一个请求,等它回来了再发下一个,那页面就卡着,用户得干等,体验不好。
这时候,Salesforce给我们提供了一个叫,Continuation,的机制。用这个Continuation,你可以一次把多个独立的请求打包,让它们同时跑起来。但有个小限制——,同一个Continuation实例里,最多只能加三个请求,。就像一个小推车,一次最多装三件货,装多了它不干。
比如,你要查产品A和产品B的库存,完全可以在一个Continuation里添加这两个请求。它们会,并行运行,,各跑各的,谁也不用等谁。这时候,当前的Visualforce请求就会被,挂起,,页面不会僵死,只是暂时在后台等着。只有等所有请求的响应都回来了,这个Visualforce进程才会,恢复,,继续往下走,把拿到的数据渲染给用户看。
那问题来了,请求多了,我怎么知道哪个响应对应哪个请求呢?别担心,你每加一个请求的时候,都得给它绑一个,唯一的标签,,就像给每个包裹上贴个条码。然后在回调方法里,你就用这个标签,把对应的响应数据取出来。比如,你可以设标签叫`'productA'`、`'productB'`,回调里一调`.getResponse('productA')`就拿到了,很清楚。
简单总结一下这个Slide的重点:
- 一个Continuation最多并行,3个,callout。
- 它们同时发出,,挂起,页面,等全回来了再,恢复,。
- 每个请求用,唯一标签,区分,方便在回调里取响应。
这样就能让页面更高效,用户也不用傻等啦。咱们休息一下,有问题随时提。
关键词
Apex
Salesforce
Developer Guide