整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

前端性能优化

响用户访问的最大部分是前端的页面。网站的划分一般为二:前端和后台。我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等。而前端呢?其实应该是属于功能的表现。

而我们建设网站的目的是什么呢?不就是为了让目标人群来访问吗?所以我们可以理解成前端才是真正和用户接触的。

除了后台需要在性能上做优化外,其实前端的页面更需要在性能优化上下功夫,只有这样才能给我们的用户带来更好的用户体验。不仅仅如此,如果前端优化得好,他不仅可以为企业节约成本,他还能给用户带来更多的用户,因为增强的用户体验。说了这么多,那么我们应该如何对我们前端的页面进行性能优化呢?

前端性能优化的方法?

一、content方面

1,减少HTTP请求:合并文件、CSS精灵、inline Image

2,减少DNS查询:DNS查询完成之前浏览器不能从这个主机下载任何任何文件。方法:DNS缓存、将资源分布到恰当数量的主机名,平衡并行下载和DNS查询

3,避免重定向:多余的中间访问

4,使Ajax可缓存

5,非必须组件延迟加载

6,未来所需组件预加载

7,减少DOM元素数量

8,将资源放到不同的域下:浏览器同时从一个域下载资源的数目有限,增加域可以提高并行下载量

9,减少iframe数量

10,不要404

二、Server方面

1,使用CDN

2,添加Expires或者Cache-Control响应头

3,对组件使用Gzip压缩

4,配置ETag

5,Flush Buffer Early

6,Ajax使用GET进行请求

7,避免空src的img标签

三、Cookie方面

1,减小cookie大小

2,引入资源的域名不要包含cookie

四、css方面

1,将样式表放到页面顶部

2,不使用CSS表达式

3,使用不使用@import

4,不使用IE的Filter

五、Javascript方面

1,将脚本放到页面底部

2,将javascript和css从外部引入

3,压缩javascript和css

4,删除不需要的脚本

5,减少DOM访问

6,合理设计事件监听器

六、图片方面

1,优化图片:根据实际颜色需要选择色深、压缩

2,优化css精灵

3,不要在HTML中拉伸图片

4,保证favicon.ico小并且可缓存

七、移动方面

1,保证组件小于25k

2,Pack Components into a Multipart Document

好了,我就谈这些,这些东西也是我的一些简单的看法,当然,你可能不赞成我说的,或者你有更好的建议,你可以单独联系我,也可以在这帖子后面给我评论,或者叫留言。

近有客户在linux系统部署皕杰报表后发现总有高度拉伸不到位的情况发生,可是我们自己却无论怎么测试都不能重现问题。不能重现问题,就不好找出解决问题的方法。

于是要来了这张问题表的html源代码,在浏览器中打开后用F12检查,发现这个单元格的拉伸高度计算不正确。见下图:

是什么原因导致的计算错误呢?我们分析有两种可能,一是所用的皕杰报表版本太老,二是计算高度的依据缺失,而计算拉伸高度的依据是字体和字号。

检查了客户使用的版本号没有问题,但在linux系统里却只安装了宋体,其它中文字体都没有,而在报表里选择的字体却是微软雅黑,计算的依据没了,系统所以计算出的拉伸高度就是错的了。让用户把报表里的字体改成宋体,再测试拉伸高度变大了一点,但是还是没有完全拉开,我们判断是jre里也没有宋体,理论上在jre里安装宋体后拉伸问题就会得到解决。

因而我们给了两个解决方案:一是在linux系统中和jre中安装所用的中文字体,方法按linux系统及安装jdk的基本要求,这里不做说明。二是改这个单元格的css,让单元格废弃计算的拉伸高度,改为自动拉伸。

在皕杰报表设计器全局属性web资源引用中添加:

<style type="text/css">
.expand div{
 height: auto !important;
 }
</style>

在设计器这个单元格的属性css样式里添加expand。

用户觉得jre中安装中文字体比较麻烦,决定采用方法二测试。部署后我们看到单元格已经正常拉伸了,用F12检查一下运行的css,果然是废弃了计算的高度,而采用了我们新增的css格式。见图:

至此高度拉伸不到位问题得以解决。但我们认为最好的解决方案还是方法一,把要用的中文字体安装上,避免产生错误的计算结果。

evExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress WinForm 近日正式发布了2022年第一个重大版本——v22.1,此版本也正式升级了之前版本中发布的HTML CSS模板功能,欢迎下载最新版体验!

DevExpress WinForms Subscription官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载-慧都网

HTML CSS 模板

列表框、组合框、警报 - HTML和CSS标记支持

v22.1 为我们的WinForms ListBox、ComboBox和Alert控件引入了 HTML 和 CSS 标记支持,使用HtmlTemplates属性定义可应用于项目的HTML-CSS模板集合,阅读以下文章:

  • DevExpress WinForms的HTML & CSS 模板 — 新控件和功能
  • DevExpress WinForms HTML & CSS模板——轻松创建警报通知

处理以下事件以响应针对 HTML UI 元素的鼠标操作:

  • HtmlElementMouseOver
  • HtmlElementMouseMove
  • HtmlElementMouseOut
  • HtmlElementMouseClick
  • HtmlElementMouseDown
  • HtmlElementMouseUp

HTML Content控件 - 存储库项的输入标记

您现在可以将存储库项目包装在 <input> 标记内。

'name' 属性按名称引用存储库项,'value' 属性指定数据字段名称。

HTML

<div class='default-avatar-container' hidden='${HasPhoto}'>
<input class='default-avatar' name='pictureEdit' value='${Photo}' />
<a class='choose-photo' id='choose_Photo'>Choose a photo</a>
</div>
<div class='default-avatar-container avatar-container' hidden='${IsDefaultPhoto}'>
<input class='avatar' name='pictureEdit' value='${Photo}' />
</div>
<div class='input-box'>
<input class='input' name='emailEdit' value='${Email}'/>
</div>

我们的Template Designer 在包括'In-place Editor Repository' 选项卡,打开此选项卡来创建要在 HTML 模板中引用的存储库项目。

HTML模板设计器增强

HTML 模板设计器现在附带以下选项:

  • 区域折叠
  • 缩进指南
  • 行号

TileView - 项目自动高度

我们添加了一个新的TileViewOptionsHtmlTemplate.ItemAutoHeight 选项来支持由HTML和基于CSS模板呈现的图块的自动高度模式,在自动高度模式下,磁贴会垂直拉伸以完全显示内容。

新的 CSS 属性

我们支持以下 CSS 属性:

  • overflow-wrap
  • white-space
  • background-image
  • background-position
  • background-size
  • background-repeat