前言
在 Salesforce 开发中,JavaScript Remoting 是一种调用后端 Apex Code 的机制,能够将数据直接从浏览器发送到后端,从而减少服务器负载和数据传输量,并提高应用的响应速度。
然而,使用 JavaScript Remoting 并不是一件容易的事情,需要开发者了解 Salesforce 提供的 API 接口和调用方式等相关知识。为了简化这个过程,有一款优秀的 npm 包 - salesforce-js-remoting-utils。
本篇文章将主要介绍这个 npm 包的使用教程和注意事项,并结合实际示例进行演示。
安装
使用 npm 安装:
npm install salesforce-js-remoting-utils --save
使用方法
在实际开发中,我们需要做如下几步:
1. 在 Visualforce 页面引用 salesforce-js-remoting-utils
<apex:page> <apex:includeScript value="{!$Resource.JQuery}"/> <c:salesforce_js_remoting_utils/> <!-- … --> </apex:page>
其中,$Resource.JQuery 是引用 jQuery 的 script 标记,目的是使用 jQuery 作为与 DOM 进行交互的工具。
2. 利用 salesforce-js-remoting-utils 提供的 jsRemoting 方法调用后端代码
在 Visualforce 页面中,我们可以直接调用 salesforce-js-remoting-utils 提供的 jsRemoting 方法。该方法接受 4 个参数,具体如下:
- controllerName: 调用后端控制器的名称;
- actionName: 调用后端控制器的方法名称;
- requestData: 需要传递到后端的参数;
- callback: 后端返回数据后的回调函数。
具体使用方法如下:
-- -------------------- ---- ------- -- ----- --- -------------- - --------------- -- ---- --- ---------- - ----------- -- ---- --- ----------- - - --- ------ ----- ----- ----- -- -- -------- --- -------- - ------------------ - ---------------------- -- -- -- ---------- -- -------------------------- ----------- ------------ ----------展开代码
以上示例代码,调用的是名为 “MyController” 的后端控制器的 “MyAction” 方法,并传递了一个包含 id 和 name 字段的对象。
注意:jsRemoting 方法中的 requestData 参数必须是一个对象。
3. 创建后端控制器和方法
接下来,我们需要在后端定义控制器和方法,就可以处理从前端传递过来的数据和返回数据了。
以下是一个简单示例:
global class MyController { @RemoteAction global static String MyAction(String id, String name) { // 处理数据逻辑 return "Hello " + name + "!"; } }
该控制器包括一个名为 MyAction 的方法,接受 id 和 name 两个参数,最终返回一个字符串。
值得注意的是,MyAction 方法需要使用 @RemoteAction 标注,以表明这是一个在 Visualforce 页面中调用的方法。
示例应用
为了更好的理解使用过程,这里提供一个完整的示例应用。
Visualforce 页面
-- -------------------- ---- ------- ----------- ------------------- ----------------------------- --------------------------------- -------- ---------------------------- - -- ------ ---------- -- ------------------------------------------------- - -- ----- --- -------------- - --------------- -- ---- --- ---------- - ----------- -- ---- --- ----------- - - --- ------ ----- ----- ----- -- -- -------- --- -------- - ------------------ - --------------------------------------- -- -------------------------- ----------- ------------ ---------- --- --- --------- ------- ----------------------- ----------------- -- -------------------- ------------展开代码
该页面包括一个按钮和一个段落标签。当用户点击按钮时,jsRemoting 方法将调用 MyController 控制器的 MyAction 方法,并将传递 requestData 对象作为传入参数。最终,后端将返回一条消息,输出在段落标签中。
Apex 控制器
global class MyController { @RemoteAction global static String MyAction(String id, String name) { // 处理数据逻辑 return "Hello " + name + "!"; } }
如上代码所示,该控制器只包括一个 MyAction 方法,它接收 id 和 name 两个参数,并返回一个字符串。
总结
本文主要介绍了 npm 包 salesforce-js-remoting-utils 的使用方法,通过该工具,开发者可以方便地调用 Visualforce 页面中的 JavaScript Remoting 方法,并在后端获得处理后的数据。该方法能够降低服务器负载和数据传输量,并提升应用的响应速度。
在实际使用中,需要注意以下几点:
- 需要在 Visualforce 页面中引用 salesforce-js-remoting-utils;
- jsRemoting 方法的 requestData 参数必须是一个对象;
- 后端控制器必须使用 @RemoteAction 标注。
最后,感谢您的阅读。若有不足之处,请多多指教。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cc581e8991b448e6471