本人为项目组制定的一份页面优化指南(easyui页面优化方案)
#本人为项目组制定的一份页面优化指南(easyui页面优化方案) ##背景
这是一篇我之前为项目组制定的页面优化指南,主要是面向表单页面,典型的像[注册用户](https://passport.cnblogs.com/register.aspx)那样的页面。 本人的项目主要是基于easyui的,一开始都是直接用其中的layout进行布局,但对于一个实际项目中有100-200甚至更加多字段的表单项,载入的效率很成问题 经过**本人的分析**(具体的分析过程见[这里](http://www.cnblogs.com/p2227/p/3540858.html)),发现layout,datebox,combobox及一些panel的衍生组件(其实datebox和combobox中也有panel)都是罪魁祸首 所以本人重新写了一个针对表单页面的优化方案,包括文档和相应的代码,本博主要是其中的文档部分 ##文档
如果文档在网页上显示有问题,可以直接下载[PDF格式](http://files.cnblogs.com/p2227/%E9%A1%B5%E9%9D%A2%E4%BC%98%E5%8C%96%E6%8C%87%E5%8D%972.pdf) >页面(登记表)优化指南 一、 文档目的 引导及记录一套项目页面(尤其是登记表页面)的优化方案 二、 优化要点 1.文档声明 文档声明必须置于网页的HTML部分的最开始,标签之前。它影响着整个网页的解释(兼容性及效率问题)。目前项目中使用的声明是 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> `PS:其实本人还是倾向于向前走,拥抱HTML5的` 2.HTML架构 页面元素结束之前不要放太多的script标签,一个带src的script标签会引起一次请求,如果标签中的代码另外发起了ajax请求更加需要置后。
为了便于开发,一部分通用的JS可能置于body之前,即整体代码架构如下: //在body之前放置一些通用JS <body class="wds-layout-body> <div id="center-layout" class="wds-layout-scroll wds-layout-north">主体内容</div> <div id="south-layout" class="wds-layout-button wds-layout-south">下方按钮</div> </body> //在body之后放置一些业务JS,尤其是当中有ajax请求的js 3.内容布局 3.1 尽量少用easyUI的Panel及Panel的衍生组件(layout,Tabs,datebox)去布局 3.2 对于登记表,必须要有**<html>** 及 **<body>**元素。具体代码结构如下:
(参考某某页面`这里跟项目实际路径有关,省略`) <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> //其他代码 <body class="wds-layout-body"> <div id="center-layout" class="wds-layout-scroll wds-layout-north">主体内容</div> <div id="south-layout" class="wds-layout-button wds-layout-south">下方按钮</div> </body> </html> 再执行一下js代码:**$.applyLayout();**
则会生成一个固定有north和south布局的页面 4.字典项 4.1 简单的、变化小的字典项(4项及以下)应该直接radio/checkbox置于页面 新封装$.omDic()组件,参考dicQuery.js,使用方法:
`此处省略100字,因为是跟项目后台有关联的` 5.选择器 尽量少避免使用复杂的选择器,能直接用ID尽量用ID选择。 6.子表 子表不用tab页方式展示,利用点击按钮后弹出对话框的方式展现。 7.折叠 如果内容太多,需要折叠分类显示,则在相应的行上面加上
```html
class="list_colspan"
```
即可,逻辑处理置于**$.applyLayout**函数中(不要用easyUI的accordion) 三、 注意问题 1.养成良好习惯,HTML元素要正确闭合,javascript中不要放置多余的逗号
在eclipse中用正则表达式
```html
,\s*[\r\n][\r\n]\s*\}
```
去搜索,能查找出js中多余的逗号 2.能用HTML完成的内容尽量不要用CSS/JavaScript去完成,能用CSS去完成的内容尽量不要用JavaScript去完成
如鼠标提示最省资源的方式是用title属性去完成,其次用:hover伪类,用JavaScript事件最耗资源 3.项目内容稳定后,应该将变化小的HTTP请求(如查询字典)改成get请求以缓存 4.项目内容稳定后,应该将js及css压缩、合并以减少请求时间 5.项目内容稳定后,应该将图片合并,利用css sprite定位,以减少请求次数 ##优化后的页面示例
[DEMO](http://p2227.github.io/demo/applyLayout/playout.html)
本人为项目组制定的一份页面优化指南(easyui页面优化方案)的更多相关文章
- 基于angularJs的单页面应用seo优化及可抓取方案原理分析
公司使用angularJs(以下都是指ng1)框架做了互联网应用,之前没接触过seo,突然一天运营那边传来任务:要给网站做搜索引擎优化,需要研发支持.搜了下发现单页面应用做seo比较费劲,国内相关实践 ...
- 多域名环境,页面获取url的一种方案
因为系统是分布式部署的.而且有多个域名,所以常常涉及到获取url的问题. 这是系统框架层面须要提供的能力.否则每一个模块都须要自己去想办法获取ip,就会非常混乱.上线也easy发生bug 主要须要解决 ...
- Web前端性能优化——如何提高页面加载速度
前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒, ...
- 【转】Web前端性能优化——如何提高页面加载速度
前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒,如果等待超过10秒, ...
- 好用的在线web页面测试,移动页面测试工具webpagetest使用图文教程
好用的在线web页面测试,移动页面测试工具webpagetest使用图文教程 http://www.webpagetest.org/ 1.打开主页,输入网址,点击 START TEST 按钮开始测试 ...
- C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求
C# 动态创建SQL数据库(二) 使用Entity Framework 创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...
- 将flex页面嵌入到jsp页面中
如果我们只需要用到Flex的一部分功能,例如播放器功能,我们可以单独把Flex页面嵌入到Jsp页面中.要想实现此功能,需要下载一个工程,将其覆盖在服务器根目录下即可.你可以在次下载:FlexModul ...
- Java与Flex学习笔记(20)---将flex页面嵌入到jsp页面中
如果我们只需要用到Flex的一部分功能,例如播放器功能,我们可以单独把Flex页面嵌入到Jsp页面中.要想实现此功能,需要下载一个工程,将其覆盖在服务器根目录下即可.你可以在次下载:FlexModul ...
- JS定时刷新页面及跳转页面
JS定时刷新页面及跳转页面 Javascript 返回上一页1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history ...
随机推荐
- linux下svn的常用代码【转】
转自:http://www.2cto.com/os/201205/130192.html 1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例 ...
- sizeof()与strlen()的区别
首先需要说明的是sizeof和strlen都可以求长度,但是却有很大的区别,简单来说可以概括为以下几点: 1.sizeof是一个关键字,而strlen确实一个函数. 2.sizeof求的是字节长度,而 ...
- 运行所有sdk目录下的示例,查看它们的功能,方便以后查寻
运行所有sdk目录下的示例,查看它们的功能,方便以后查寻
- JavaScript中typeof知多少?
typeof运算符介 绍:typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型. 你 知道下面typeof运算的结果吗? typeof ...
- JS里面匿名函数的调用 & 变量作用域的实验
参考 http://www.educity.cn/wenda/54753.html 已实验验证结果正确. 1.下列哪些正确?(B.C) A.function(){ alert("Here!& ...
- IOS中微博正文开发步骤总结
微博正文开发步骤总结 1.新建正文控制器,在点击首页的某一条微博时跳转过去 2.在MainController中设置导航控制器的代理,监听所有导航控制器的跳转 1> 如果即将显示的不是根控制器 ...
- USACO 2014 Open Silver Fairphoto
这道题只是银牌组的第一题而我就写了 3K 的代码.唉. Description - 问题描述 FJ's N cows (2 <= N <= 100,000) are standing at ...
- 用list<类>集合接收一个网址返回的一个类的集合的XML
JavaScriptSerializer serializer = new JavaScriptSerializer(); string json = Share.Helper.HttpRequest ...
- jQuery 实现Bootstrap Chart 图表
很多时候我们制作报表的时候需要图表,如果你使用bootstrap开发你的网站,如果你需要使用图表,那么最简单的方法就是就是使用bootstrap 的chart.js来实现图表,下面介绍方法 1.引入c ...
- Windows下PHP+Eclipse开发环境搭建 及错误解决(apache2.2服务无法启动 发生服务特定错误:1)
前言 Eclipse与php/apache的关系:Eclipse只是用来写代码的,如果想要在浏览器查看运行效果就要让php/apache的运行目录指向你的代码目录.Eclipse貌似不会自己和apac ...