以下规范建议,均是Alloyteam在日常开发过程中总结提炼出的经验,规范具备较好的项目实践,强烈推荐使用 字体设置 使用无衬线字体
1 2 3 |
body { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif; } |
iOS 4.0+ 使用英文字体 Helvetica Neue,之前的iOS版本降级使用 Helvetica。中文字体设置为华文黑体STHeiTi。 需补充说明,华文黑体并不存在iOS的字体库中(http://support.apple.com/kb/HT5878), 但系统会自动将华文黑体 STHeiTi 兼容命中系统默认中文字体黑体-简或黑体-繁
1 2 3 4 |
Heiti SC Light 黑体-简 细体 (iOS 7后废弃) Heiti SC Medium 黑体-简 中黑 Heiti TC Light 黑体-繁 细体 Heiti TC Medium 黑体-繁 中黑 |
原生Android下中文字体与英文字体都选择默认的无衬线字体
1 2 3 |
4.0 之前版本英文字体原生 Android 使用的是 Droid Sans,中文字体原生 Android 会命中 Droid Sans Fallback 4.0 之后中英文字体都会使用原生 Android 新的 Roboto 字体 其他第三方 Android 系统也一致选择默认的无衬线字体 |
基础交互 设置全局的CSS样式,避免图中的长按弹出菜单与选中文本的行为
1 2 3 4 5 6 7 |
a, img { -webkit-touch-callout: none; /* 禁止长按链接与图片弹出菜单 */ } html, body { -webkit-user-select: none; /* 禁止选中文本(如无文本选中需求,此为必选项) */ user-select: none; } |
移动性能 要考虑Android低端机与2G网络场景下性能 注意! 发布前必要检查项 所有图片必须有进行过压缩 考虑适度的有损压缩,如转化为80%质量的jpg图片 考虑把大图切成多张小图,常见在banner图过大的场景 加载性能优化, 达到打开足够快 数据离线化,考虑将数据缓存在 localStorage 初始请求资源数 < 4 注意! 图片使用CSS Sprites 或 DataURI 外链 CSS 中避免 @import 引入 考虑内嵌小型的静态资源内容 初始请求资源gzip后总体积 < 50kb 静态资源(HTML/CSS/JS/Image)是否优化压缩? 避免打包大型类库 确保接入层已开启Gzip压缩(考虑提升Gzip级别,使用CPU开销换取加载时间) 注意! 尽量使用CSS3代替图片 初始首屏之外的静态资源(JS/CSS)延迟加载 注意! 初始首屏之外的图片资源按需加载(判断可视区域) 注意! 单页面应用(SPA)考虑延迟加载非首屏业务模块 开启Keep-Alive链路复用 运行性能优化, 达到操作足够流畅 避免 iOS 300+ms 点击延时问题 注意! 缓存 DOM 选择与计算 避免触发页面重绘的操作 Debounce连续触发的事件(scroll / resize / touchmove等),避免高频繁触发执行 注意! 尽可能使用事件代理,避免批量绑定事件 使用CSS3动画代替JS动画 避免在低端机上使用大量CSS3渐变阴影效果,可考虑降级效果来提升流畅度 HTML结构层级保持足够简单 尽能少的使用CSS高级选择器与通配选择器 Keep it simple […]
View Details本文实例讲述了php判断数组中是否存在指定键(key)的方法。分享给大家供大家参考。具体分析如下: php中有两个函数用来判断数组中是否包含指定的键,分别是array_key_exists和isset array_key_exists语法如下 1 array_key_exists($key, $array) 如果键存在返回true isset函数语法如下 1 isset($array[$key]) 如果键存在返回true 演示代码如下: 1 2 3 4 5 6 7 <?php $array = array("Zero"=>"PHP", "One"=>"Perl", "Two"=>"Java"); print("Is 'One' defined? ".array_key_exists("One", $array)."\n"); print("Is '1' defined? ".array_key_exists("1", $array)."\n"); print("Is 'Two' defined? ".isset($array["Two"])."\n"); print("Is '2' defined? ".isset($array[2])."\n"); ?> 返回结果如下: 1 2 3 4 Is 'One' defined? 1 Is '1′ defined? Is 'Two' defined? 1 Is '2′ defined? from:http://www.jb51.net/article/62372.htm
View Detailsphp 5个版本,5.2、5.3、5.4、5.5,怕跟不上时代,新的服务器直接上5.5,但是程序出现如下错误:Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in,看意思就很明了,说mysql_connect这个模块将在未来弃用,请你使用mysqli或者PDO来替代。 解决方法1: 禁止php报错 display_errors = On 改为 display_errors = Off 鉴于这个服务器都是给用户用的,有时候他们需要报错(…都是给朋友用的,^_^),不能这做,让他们改程序吧,看方案2. 解决方法2: 常用的php语法连接mysql如下 <?php $link = mysql_connect('localhost', 'user', 'password'); mysql_select_db('dbname', $link); 改成mysqi <?php $link = mysqli_connect('localhost', 'user', 'password', 'dbname'); 常用mysql建表SQL如下 <?php // 老的 mysql_query('CREATE TEMPORARY TABLE table', $link); // 新的 mysqli_query($link, 'CREATE TEMPORARY TABLE table'); 解决方法三: 在php程序代码里面设置报警级别 <?php error_reporting(E_ALL ^ E_DEPRECATED); Deprecated的问题就这样解决掉了,不过还是建议大家尽快取消mysql的用户,全部都走向mysqli或者mysqlnd等等。mysql确实是太不安全而且太老旧了。 转载请注明出处:http://www.ttlsa.com/html/2502.html
View Details新浪科技讯 北京时间2月27日消息,据国外媒体报道,动物王国向来就是一个令人不可思议的世界,其中很多成员都是人类眼中的“千里眼”、“顺风耳”、“飞毛腿”和“大力神”。除了这些我们比较熟悉的本领外,一些动物与生俱来的特性也同样让我们叹为观止,比如说主打“透明牌”。十大透明动物具体如下: 1. 透明青蛙 透明青蛙 这种青蛙是两栖动物家族瞻星蛙科成员,原产自委内瑞拉,由于呈透明状,故名“玻璃蛙”。在这个家族中,绝大多数成员底色主要为石灰绿,有些成员的腹部皮肤也呈透明状,也就是说,我们可以透过皮肤看到它们的心脏、肝脏和消化道。 2. 透明深海怪鱼 透明深海怪鱼 这种怪异的深海鱼被称之为“Barreleye”(学名大鳍后肛鱼),长着一个透明的脑袋和管状的眼睛。Barreleye的眼睛对光线极为敏感,并且能够在鱼头上充满液体的透明防护体内旋转,它的管状眼睛长在头内,被亮绿色的晶体盖住。如图所示,当搜寻头顶上方的食物时,Barreleye的眼睛就会指向上方;摄食的时候,眼睛就会指向前方。鱼嘴上方的两个小点可绝不是眼睛,而是嗅觉器官鼻孔,与人类的鼻孔类似。 3. 透明蝴蝶 透明蝴蝶 这种蛱蝶是在从墨西哥到巴拿马的中美洲发现的,由于翅膀呈透明状,故名“玻璃翼蝴蝶”(学名Greta Oto),其翅脉间的组织是透明的,看上去就和玻璃一样。 4. 透明乌贼 透明乌贼 这种乌贼是在南半球的海洋发现的,由于身体呈透明状,因此得名“玻璃乌贼”(学名Teuthowenia pellucida)。它们的眼上生有轻器官,并且拥有将自己滚成球的能力,就像是一只水生刺猬。玻璃乌贼是很多深海鱼类(例如小丑鲨)、鲸鱼以及海鸟的猎物。 5. 透明斑马鱼 透明斑马鱼 透明斑马鱼是科学家在2008年培育的,以便于研究包括癌细胞扩散在内的疾病发展过程。借助于这个透明的“活工具”,波士顿儿童医院的研究人员可以观察鱼类的内部器官,并实时监视活生物体内的肿瘤发育等过程。 6. 透明鳄形冰鱼 透明鳄形冰鱼 鳄形冰鱼学名“Channichthyidae”,是在南极洲和南美洲南部周围的冷水域发现的,它们主要以磷虾、桡足动物以及其它鱼类为食。由于不含血色素或者说红细胞已死,鳄形冰鱼的血是透明的。它们的新陈代谢只依靠液态血液中融入的氧完成。据信,鳄形冰鱼可利用皮肤直接从水中吸收氧。这种方式显然非常有效,因为在温度达到最低时,水能够溶解绝大部分氧。在5种鳄形冰鱼中,肌肉中肌红蛋白的基因也同样消失了,除了粉红色的心脏外,留给它们的只剩下白色。 7. 透明片脚动物 透明片脚动物 这种与众不同的动物名为“Phronima”,是最近在北大西洋深海山脉进行探险时发现的众多怪异物种中的一个。为了生存,这种微小的类虾动物采取了反其道而行之的策略,它们不是选择躲避,而是将自己里里外外的一切毫无保留地展现出来,试图让自己在捕食者的视线中消失。科学家表示,其它很多小型深海动物身体也都呈透明状或者接近透明,以便在漆黑环境下更好地伪装自己。 8. 透明虾 透明虾 图片中的这只透明幼虾是在夏威夷周围水域发现的,此时的它正“骑”在一只身体同样呈透明状的水母背上。 9. 透明樽海鞘 透明樽海鞘 这种类似水母的动物被称之为“樽海鞘”,以水中的小型浮游植物——海藻为食。其透明身体呈桶状,身长一般在1到10厘米。 10. 透明水母 透明水母 水母是刺丝胞动物门的一员,它们的足迹遍布每一个海洋,无论是在海面还是深海区,我们都能看到它们的身影。很多水母透明程度极高,几乎让人看不到它们的存在。我们在图片中看到的是一只Arctapodema水母,身长只有1英寸(2.5厘米)。(孝文) from:http://tech.sina.com.cn/d/2009-02-27/09092864180.shtml
View DetailsASP.NET MVC3中的Model是自验证的,这是通过.NET4的System.ComponentModel.DataAnnotations命名空间完成的。 我们要做的只是给Model类的各属性加上对应的验证标记(Attributes)就可以让MVC3框架帮我们完成验证。我以MVC3项目模板自带的登录 做例子讲解Model的验证。 一、启用客户端验证: 客户端验证主要是为了提高用户体验,在网页不回刷的情况下完成验证。 第一步是要在web.config里启用客户端验证,这在MVC3自带的模板项目中已经有了: <add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 然后在被验证的View页面上要加入这样两个JavaScript,注意,他们是依赖于JQuery的: <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 验证消息的显示有两种,一种是ValidationSummary,它可以显示一份验证消息的汇总,包括从后台Action里返回的消息。 @Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") 另一种是Model中各属性对应HTML控件的验证消息: @Html.ValidationMessageFor(m => m.UserName) 二、在Model中加入验证标记 MVC3项目模板自带的登录模型类如下: public class LogOnModel { [Required] [Display(Name = "User name")] public string UserName { get; set; } [Required] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } [Display(Name = "Remember me?")] public bool RememberMe { get; set; } } 对比普通的C#类,我们发现每个属性上都多了被方括号“[]”包围的标记。其中,[Required]是验证标记的一种,而[Display]、[DataType]则是为了显示对应的HTML控件,这不在本文讨论范围之内。 除了Required,我们还可以在Model中添加其他有用的验证标记。下面是个较完整的列表: Model类中可以添加的验证标记: 1. 必填字段 [Required] public string FirstName { […]
View Details近日,需要满足测试需求,进行大数据并发测试时,报出【HTTP 错误 500.0 – Internal Server Error E:\PHP\php-cgi.exe – FastCGI 进程超过了配置的活动超时时限】 解决办法: IIS7->FastCGI设置->双击"php-cgi.exe"->"活动超时" 项默认是设置为70(秒),改为600(10分钟,此处根据需求设置可以略高~) from:http://blog.csdn.net/abandonship/article/details/8730524
View Details安装好MySQL服务后(安装步骤可以参考系列经验1)。打开“系统偏好设置”,单击下端的“MySQL”图标。 在“MySQL”对话框中,单击“启动MySQL服务”按钮。 在弹出的窗口中,输入管理员密码,然后单击“好”按钮。 在“MySQL”对话框中,MySQL服务的状态显示为:如下状态表示MySQL服务已经启动。 使用终端登录MySQL: 在Finder的侧边栏中单击“应用程序”,然后在“实用工具”中,双击启动“终端”命令。 在终端中输入添加MySQL路径的命令: PATH="$PATH":/usr/local/mysql/bin 在终端登录到MySQL的命令如下:mysql -u root -p 然后输入密码,如果没有设置密码,直接按enter键。 如果显示的内容如下,即是已经成功登录到MySQL服务。
View Details1.启动 sudo apachectl -k start 2.重新启动 sudo apachectl -k restart //——————————————————————— 设置Apache容器默认目录(不会命令行的朋友可以参考下面的常用命令) 1.Apache配置文件所在目录 cd /etc/apache2/ 2.修改Apache配置文件 sudo vim httpd.conf 3.查找 DocumentRoot 字符串。“/”为查找定位的意思 /DocumentRoot 4. 将上述查找到的木木修改为自己想要的目录即可。 5.重新启动Apache。 //———————————————————————-- 常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 |
vim中有两种模式 命令模式,用于输入命令(注意输入法要在英文状态) shift+V 可以选中一行 y 复制一行 p 在当前行下方粘贴复制的内容 d$ 删除到行尾 x 删除一个字符 :wq 保存退出 :q! 不保存退出 i 进入编辑模式 编辑模式:用于编辑按ESC可以切换回命令模式 |
//—————————————————————- 若要支持PHP,执行如下: 1. cd /etc/apache2 sudo vim httpd.conf /php #LoadModule php5_module … 2.按字母x,删除#,然后按ESC,输入:wq退出编辑器 cd /etc/ 3.复制一份php.ini sudo cp php.ini.default php.ini 4.重新启动Apache服务器 命令回顾说明:
1 2 3 4 5 |
cd /etc/apache2/ 进入apache的配置文件目录 sudo cp file1 file2 将file1复制到file2 sudo vim httpd.conf 使用vim打开httpd.conf文件 sudo apachectl -k start 启动apache sudo apachectl -k restart 重新启动apache |
from:http://www.cnblogs.com/surge/p/4168220.html
View Details系统: OS X Yosemite 10.10.1 系统自带php和php-fpm 路径备注:
1 2 3 4 |
php.ini: /etc/ php-fpm.conf:/etc/ nginx.conf:/usr/local/etc/nginx/nginx.conf nginx 默认root:/usr/local/opt/nginx/html |
1.安装nginx,我使用了brew
1 |
brew install nginx |
2.启动php-fpm
1 |
sudo php-fpm |
如果报错的话,复制php-fpm.conf.default一份,修改php-fpm.conf的error_log 存放的路径或启动的端口 3.打开nginx.conf 开启php的注释,配置好自己的root
1 2 3 4 5 6 7 |
location ~ \.php$ { root /Users/maming/php; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } |
注意
1 2 3 4 5 |
SCRIPT_FILENAME /script$fastcgi_script_name; 要改成 SCRIPT_FILENAME $document_root$fastcgi_script_name; |
否则回报文件不存在的。 4.开启nginx
1 2 3 4 |
sudo nginx 或重启 sudo nginx -s reload |
from:http://www.2cto.com/os/201504/390021.html
View Details#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /var/log/nginx/error.log info; #进程文件 pid /var/run/nginx.pid; #一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。 worker_rlimit_nofile 65535; #工作模式与连接数上限 events { #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。 use epoll; #单个进程最大连接数(最大连接数=连接数*进程数) worker_connections 65535; } #设定http服务器 http { include mime.types; #文件扩展名与文件类型映射表 default_type application/octet-stream; #默认文件类型 #charset utf-8; #默认编码 server_names_hash_bucket_size 128; #服务器名字的hash表大小 client_header_buffer_size 32k; #上传文件大小限制 large_client_header_buffers 4 64k; #设定请求缓 client_max_body_size 8m; #设定请求缓 sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。 autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。 […]
View Details