VisualForce Page经验分享

Salesforce入门教程(中文)-018 Visualforce Page介绍 1.Get Started with Visualforce(开始使用Visualforce) Visualforce是一个Web开发framework框架(CS模式)(可以与任何标准的Web技术或JavaScript框架集成),用于创建custom interfaces,包括类似HTML语言和一系列的server side的”stander controllers”执行基本的数据库操作(如查询、保存等),(结合Apex和JavaScriprt)。使开发人员能够为可托管在Lightning Platfo. 阅读详情

Testing Visualforce Pages

  1. 如果VF加载很慢先到http://trust.salesforce.com/trust/status/里边看看所在服务器是否有异常或者维护中。
  2. 可以用http://seleniumhq.org/等进行自动测试。
  3. 尽量测试多浏览器多设备,保证没有问题。
  4. 要进行大量数据读取等测试。
  5. 要在真机上进行相关测试,确保兼容性

调整VF的性能

常规的开发注意事项

  • VF画面要功能明确,避免业务交叉
  • 不要加载大量数据到画面,灵活使用分页等技术
  • 提交请求时不要带不必要的参数
  • 创建Prototype来测试画面性能

尽量使用Salesforce的标准功能

  • 尽量使用标准对象
  • 尽量使用标准的自动工具,Process,Workflow,因为这些标准功能已经经过Salesforce的优化,并且很少使用系统资源

控制画面的size

VF的Size不能超过15M,为了降低响应时间有以下办法

  • 使用Where等条件来减少SOQL查询出来的数据。
  • 灵活使用Apex的With sharing关键字,减少检索的数据
  • 遇到分页使用StandardSetController来实现避免自己写代码,容易触及Salesforce的限制,
  • SOQL OFFSET 可以实现分页数据查询

Lazy Loading

画面加载优先加载对客户必要的信息,不要的信息延后加载。有以下方法

  • 使用VF的rerender属性,根据条件显示数据
  • 使用Javascript Remote方法来动态的调用Apex,检索数据。
  • 创建共同Component来显示和隐藏数据

灵活使用异步方法

传统的点击按钮等待画面相应往往花费大量系统资源,客户体验也不是很好。
所以推荐客户使用异步方法,在功能执行完之后通过邮件或者其他方式通知客户。

经常使用的数据保存在Custom setting里

书写高效的Apex和SOQL

Apex开发和注意事项参考另外文章【Apex开发注意事项】

  • 尽量在SOQL里实现计算,而不是在APEX里
  • 不要把SOQL写在循环里
  • 首先在SOQL里设定过滤条件,然后在APEX里过滤,最后在VF里过滤。

书写高效的Getter方法

确保当Object是Null的时候进行数据检索,同一个请求里是可以重复使用缓存数据的。

View State调优

  • 使用transient来实现无状态传输数据
  • 确保SOQL只返回画面需要的值,并减少画面显示的项目和数据条数。
  • 减少引用组件的数量
  • 考虑把只显示画面的项目使用apex:outputText 而不是apex:inputField.
  • 在开发者模式下开发区域有个View State的Tab可以看到View State的状态。
  • 考虑使用remoting javascript代替apex:actionFunction ,因为remoting javascript不使用Form表单来传递值,所以能有效的减少View State的大小

组件层级优化

扁平的组件模式比带有多层的组件模式效率更高,因为salesforce的一个请求要处理所有的组件,所以层级越多服务器端压力越大,相应时间就越长,更容易触及salesforce的limit。

Polling调优

当使用了apex:actionPoller 的时候适当调高interval的时间来降低服务器端的压力。
另外测试的时候要多打开几个Tab同时测试同一个画面,确认是有冲突的问题。

HTML调优

  • Review由VF生成的HTML,确保生成的代码和VF的结构是一样的。因为有的时候VF在编译的时候会自动纠正HTML的错误,如果VF里有一些不合理的代码在VF执行的时候被修改了,如果没注意可能引起麻烦,另外也增加了服务器端的负荷。
  • 确认Ajax代码,确保包含的HTML都能被正确的解析和返回,减少服务器端的校验。
  • 减少HTML的不必要的代码,虽然浏览器缓存会加快访问速度,但是不必要的代码可能会增加组件的层级,从而增加服务器端的负荷。

CSS调优

  • 一定要把CSS放到单独的文件里保存在静态资源里,然后在画面上引用,虽然这么做增加了画面初次访问时候的加载时间,但是他有效的减少的每个资源文件的size,这样可以有效的缓解服务器的压力,另外浏览器一次加载之后再次访问时是可以提高效率的。
  • CSS文件不要创建多个要把所有的都放到一个文件里,减少Http的请求
  • 删除掉文件里的空格,tab,注释等减少文件的体积。
  • 自己开发的画面不要加载Salesforce的CSS,在 apex:page 里把showHeaders 和 standardStylesheets 设置成 false,这样在画面加载的时候就不会加载Salesforce的CSS了。

JavaScript调优

  • 一定要把JS放到单独的文件里保存在静态资源里。
  • 引用外部JS库的时候,注意只引用真正用的部分,这样可以减少加载JS的Size。
  • 合并所有的文件到一个JS文件里,并且去除掉重复的方法。
  • 删除掉文件里的空格,tab,注释等减少文件的体积。
  • 把可以移动的部分移动到画面的底部,从而加快画面展示部分加载速度。(不能移动的部分就不要动了)
  • 尽量使用

优化使用图片

  • 尽量用CSS来代替图片,使用 CSS sprites 来拼接图片,然后用background-image and background-position来显示。
  • 把图片放到静态资源里。
  • 压缩图片

如果使用的是IE有以下建议

  • 不要使用AlphaImageLoader,他会导致图片加载问题。
  • 使用 来导入stylesheets,使用@import会改变画面加载顺序。
  • 避免直接写CSS语句。
AI编排:企业级LLM与业务系统实时协同的中枢架构 AI编排(AI Orchestration)是一种面向企业落地的智能系统集成范式,其核心在于弥合大语言模型与异构业务系统(如SAP、Salesforce、Oracle)之间的数据断层与语义鸿沟。它并非新模型,而是融合API治理、提示工程、安全调度与可观测性的实时协同架构。技术原理上,通过分层解耦实现数据可信搬运(MuleSoft)、多步推理执行(LangChain)与上下文语义对齐;其技术价值体现在保障数据实时性、输出可集成性及链路可诊断性;典型应用于销售流失预警、采购智能分析、HR风险识别等需强业务闭环的 阅读详情

相关推荐

MATLAB闪退别慌!5分钟搞定Windows系统预设文件修复(附详细截图)

本文针对MATLAB在Windows系统下频繁闪退的问题,提供了快速有效的解决方案。核心在于修复或重置损坏的MATLAB预设文件,通过图文并茂的五步法,指导用户定位AppData目录、重命名预设文件夹,从而让MATLAB自动生成全新配置以解决闪退。文章还涵盖了问题诊断、设置备份及进阶排查方法,帮助用户彻底根除启动故障。

weixin_29234423的博客 925

VS自带Setting使用步骤

Settings.settings 设置 可以使用数据网格视图,很方便 在VS 2005中设置和读取配置文件已经变的很简单了,而且是强类型的,读取的值可以直接赋值给相应的变量,无需强制转换。 1. 在VS 2005中进行应用程序设置 打开 项目属性 » 设置,如下图: 输入名称,选择类型和范围,输入值保存即完成设置。 类型:i...

weixin_33671935的博客 807

如何用Lmcache+vllm优化KVcache存储?CPU与SSD性能实测对比

本文通过实测对比,详细介绍了如何利用Lmcache+vLLM将大模型推理中的KV Cache卸载至CPU内存或SSD硬盘,以解决长上下文场景下的GPU显存瓶颈。测试数据显示,CPU卸载方案在首字延迟(TTFT)上显著优于SSD方案,但SSD方案在存储成本上更具优势。文章提供了完整的配置指南、性能数据分析和生产环境选型建议。

fire9的博客 986

Salesforce入门教程(中文)-019 VF创建输入表单

5.Create Input Form(创建输入表单) 创建和编辑数据是任何应用程序的基本方面。 Visualforce提供了轻松创建可创建新记录或检索记录,编辑其值并将更改保存回数据库的页面所需的一切。将标准控制器与<apex:form>组件和一些易于理解的表单元素结合在一起,以创建一个相当复杂的记录编辑页面。使用<apex:form>和<apex:inputField>创建一个页面来编辑数据。将<apex:commandButton>与标准控制器中内置的

布偶酱的博客 615

告别WSL:Ollama Windows原生部署与GPU加速实战

本文详细介绍了Ollama在Windows系统上的原生部署与GPU加速实战指南。告别WSL,通过官方原生应用直接调用NVIDIA和AMD显卡,实现更高效的本地大模型运行。文章涵盖系统准备、三步安装、模型拉取运行、GPU性能优化及高级配置,为Windows AI开发者提供一站式解决方案。

prometheus9mon的博客 534

山景BP10_128DBG开发板通过蓝牙连接手机放歌实验回顾

最近在学习上海山景公司的BP10_128DBG的开发板,因为网上关于BP10开发板的帖子也比较少,在学习的时候也没有太多的参考资料,基本上都是官方的历程。蓝牙放歌这个demo对我来说也比较复杂,特写下此博客进行记录、总结,大家有需要的可以参考。

weixin_56646002的博客 2020

Visualforce+Apexで作るSalesforce一覧検索画面

学习如何坐一览表,同时支持 ▲ ▼ 排序。 Controller public with sharing class TravelRequestListController { // 抽出対象となるフィールドリスト static List<String> TARGET_FIELDS = new List<String>{ 'Id' ...

sinat_33939636的博客 603

[深入研究4G/5G/6G专题-31]: 5G NR开机流程5.2 - UE Attach流程(Registeration Request/Accept/Complete)

目录前言:前置条件:第1章 5G NR UE attach流程(从UE log的视角看)1.0 NAS消息解析器1.1 消息交互流程1.2 UE Registeration Request消息(AMF->基站->UE)1.3 AMF Registeration Accept消息(AMF->基站->UE)1.4 UE Register complete消息(UE->基站->AMF)第2章 UE Register...............

文火冰糖(王文兵)的博客 7万+

Salesforce控制器

导航: 1.标准控制器 2.自定义控制器 3.创建一个控制器扩展 标准控制器 操作方法可以从页面标记调用使用{!}符号的action参数的标签。 apex:commandButton creates a button that calls an action apex:commandLink creates a link that calls an action apex:actionPoller periodically calls an action apex:actionSupport makes

qq_33657664的博客 423

23种设计模式-中介者(Mediator)设计模式

软考中级-软件设计师 中介者设计模式

片言可决讼,半纸能缚龙 1864

【OpenCV-Python】——图像处理基础&读写及显示图像&读写及播放视频&灰度图/彩色图/图像通道操作、运算

在Python中,OpenCV使用NumPy数组存储图像,Numpy是使用Python进行数组计算的软件包,提供强大的N维数组对象,支持复杂的广播功能(数组运算),集成了C/C++和Fortran代码工具,支持线性代数、傅里叶变换和随机数等特性,还可作为通用数据的高效多维容器,如在OpenCV中显示图像。Numpy的知识点见数据处理专栏,主要包括数据类型、创建数组、数组形状、索引切片和迭代、数组运算等。作为初学者,里面可能有总结不全,后续深入学习后会改善文章!下次学习图形用户界面!

weixin_51658186的博客 2084

在salesforce中的visualforce中使用html的经验(web前端 -> sfdc)

本人于2015年(大二上学期)开始学习web前端,并于2016年3月15-10月16在外面工作7个月后回学校,凭借进入德勤salesforce优才班才了解到vf,之前在没有正式接触vf的时候,一直对于vf的语法心有余悸,不知道怎么发挥前端的技术能力,直到今天才研究了下vf与html的一些嵌套开发,特别写了此篇文章帮助与我一样刚入门的developer能在vf中更好的使用html。 标准组件的属性...

sf_wilson 4614

自动驾驶领域自动化数据标注应用

自动驾驶领域自动化数据标注应用 1. 背景介绍 1.1 自动驾驶技术的发展 自动驾驶技术近年来取得了长足的进步,吸引了众多科技公司和传统车企的投入。自动驾驶系统需要感知周围环境、做出决策并控制车辆,是一个极具挑战的任务。其中,环境感知是自

AI天才研究院 2214

Salesforce 开发整理(六) Visualforce分页

分页的实现总体上分真分页和假分页。 所谓真分页指页面上列出来的数据就是实际查询的数据,假分页则是无论页面上一次显示多少条记录,实际上后台已经加载了所有的记录,分页只是为了展示给用户查看。今天分享一个Visualforce页面的真分页的实现 Apex 类:OppPageController 1 /******* 2 * 3 * @作者:Ricardo 4 *...

weixin_30246221的博客 252

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Taking on Salesforce Advanced Developer Certification [DEV 501] - Part 1 - the MCQ

After a long wait ! I am here with my experience on Salesforce Advanced Developer Certification [DEV 501].  Which statement is true about Visualforce syntax? Choose 2 answers a. The tag mus

Salesforce_Samba的专栏 965

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

DLRS社区贡献指南:如何参与开源项目并提升你的Salesforce技能

Declarative Lookup Rollup Summaries (DLRS) 是一个由社区构建和维护的Salesforce应用程序,它允许你声明式地创建跨对象汇总,无需编写代码!作为开源项目,DLRS欢迎所有Salesforce开发者和管理员参与贡献,这不仅能帮助项目成长,还能提升你的Salesforce技能。本文将详细介绍如何参与DLRS社区贡献,从环境搭建到代码提交的完整流程。 ##

gitblog_00549的博客 988

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Salesforce 开发整理(十一) 自定义放大镜查找效果

有时候在自定义的visualforce页面上,需要实现系统标准的查找样式,当不能使用标准的style的时候,我们只能选择自定义实现,下面分享一个demo,预览效果如下: 实现代码,Visualforce页面 1 <!-- 自定义放大镜查找效果 --> 2 <apex:page showHeader="false" controller="SelectSyst...

weixin_30369041的博客 210

Salesforce 官方扫盲自学导航

Force.com Platform Fundamentals(新手入门的葵花宝典)www.salesforce.com/us/developer/docs/fundamentals/index_Left.htm深入Visualforce(API,高级开发必看)http://www.salesforce.com/us/developer/docs/pages/index.htm练习 Apex(...

weixin_30719711的博客 271

Apex之无间道潜伏

-- 如何实现VisualForce页面控制类与Visualforce页面组件控制类间通信 读者对象: Force.com 高级开发者 使用过VisualForce的Force.com开发者都会感叹其页面组件在交互界面复用时的简单灵活性,但是也会碰到一个棘手的问题。 当Visualforce页面在引用一个页面组件时,如何获取到页面组件对应的控制类的数据呢? 因为页面和页...

iteye_11184的博客 219

salesforce中使用标准和自定义组件多种方式实现helpText(tip tool)效果 - 合集/配图

场景描述:在为泸州老窖开发CRM系统招投标站点Site模块时,遇到helpText字段的icon无法显示或者显示了icon,但是hover上去却没有提示框。因此对此现象抽离出了如下两个具体问题。 问题1、如何开发类似标准页面的help提示效果的更加友好的编辑界面,来帮助游客(合作伙伴,供应商)更好理解字段含义或知道如何录入信息才合法呢? 问题2、为什么在showHeader="false"的v

sf_wilson 1635

Repository 2 for Salesforce.com Certificated Force.com Developer (#401)

          Repository Second (notice: the right choice marked with "***") 1.how many big deal alert can be activated for an opportunity in an organization?...

weixin_30577801的博客 171

AI编排实战:MuleSoft+LangChain企业级智能集成架构

AI编排(AI Orchestration)是打通企业多源异构系统与大模型能力的关键工程范式,其核心在于构建确定性数据管道与非确定性智能推理的协同机制。它源于对ERP、CRM、数据库等传统系统与GPT、Llama等大模型之间语义鸿沟的系统性解决,技术价值体现在安全可控的数据调度、可审计的AI决策链路及低延迟的业务响应。典型应用场景包括销售风险预警、智能挽留邮件生成、跨系统客户画像聚合等。本文聚焦MuleSoft与LangChain双引擎协同设计,深入解析如何通过职责分离实现企业级可靠性与LLM智能的有机融合

weixin_33717117的博客 1538

企业级AI编排:MuleSoft与LangChain分层实践指南

AI编排(AI Orchestration)是企业将大语言模型安全、合规、稳定嵌入现有业务系统的核心工程能力。其本质并非简单调用LLM API,而是围绕数据集成、协议适配、权限治理与结果交付构建可审计的端到端流水线。在金融、制造、零售等强监管行业中,需兼顾GDPR与《个人信息保护法》对PII字段的脱敏要求,同时兼容SAP、Salesforce、Workday等异构系统的专有协议。MuleSoft凭借300+预认证连接器、字段级数据治理和全链路追踪能力,承担‘可信数据管道’角色;LangChain则聚焦语义理

android_mylove的专栏 464

模板驱动的零代码文档自动化:业务人员自助生成PDF/Word

文档自动化是企业提升运营效率的关键技术路径,其核心在于将重复性文档生产从‘手工作业’升级为‘结构化流程’。原理上,它依赖模板引擎实现内容与样式的解耦,通过变量注入和可视化排版完成动态生成,规避传统代码开发带来的维护成本与协作壁垒。技术价值体现在降低IT依赖、保障格式一致性、支持批量高并发输出,并天然适配合规性要求(如字体嵌入、CMYK印刷、数据脱敏)。典型应用场景覆盖销售合同、财务对账单、HR录用函、客户成功报告等高频业务文档。本文聚焦Sqribble平台实践,深入解析模板分层架构、松耦合数据集成及业务人员

weixin_30265103的博客 448

example of using ActionFunction in Salesforce

VisualForce Page: function getEnteredCommunityCode(){ var enteredCode = document.getElementById("communitiesSelfRegPage:theForm:CommunityCode"); //alert(entered

1341

Salesforce Visualforce:显示和隐藏头部和侧边栏

Salesforce VF:显示和隐藏头部和侧边栏 使用sidebar="false和 showHeader=“false”,分别可以隐藏侧边栏和头部,当然默认不设置就是默认为true。 <apex:page sidebar="false" showHeader="false"> <h1>Hello World</h1> </apex:pag...

Mr_chen的博客 800
上一篇: Apex开发注意事项
下一篇: Visualforce vs Lightning
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值