首页 文章 精选 留言 我的

精选列表

搜索[前端语言],共10000篇文章
优秀的个人博客,低调大师

移动前端框架重构几个关键问题

1. 是否该废弃iscroll? 我得出的结论是,是该废弃了。那当时为什么要用iscroll? 原因有三个: 1. 因为别人也用了。 2. 为了iPhone上页面滑动更顺畅。 3. 为了用上拉、下拉刷新。 关于这三个原因有几点观点: 1.人最容易跟风,编程也是。当别人用了的时候,会认为我自己也要用,而不清楚为什么要用,本质为了解决什么。 2.Android上不用iscroll时,页面拖动效果是可以的。 iPhone上不用iscroll时,页面拖动效果确实有问题。但是!在滑动块加上-webkit-overflow-scrolling:touch; 效果非常好!! 所以别用iPhone做借口去使用。 3. 本质上,上下拉刷新跟iscroll没什么关系,只是借iscroll间接实现。所以如果作为框架的开发者,就别使用iscroll,可以减少26.1KB(压缩版)js库。如果是普通开发者想偷懒,那就看着用。 Finally: iscroll该废弃用,明确为什么想用很重要。 2. 效果设计图以什么为准? 我不是做效果设计图的,但是对设计图有点想法。很多框架是以iPhone原生效果做的,这样控件效果、页面风格就跟iPhone一样(Android上也是);也有人会有自己一套设计图风格,既不是Android原生也不是iPhone原生效果。 Finally: 各自应用该有怎么的设计图,像什么没什么好说的。但对于做框架来说,我觉得偏向原生效果总归是好的。 ——自己设计的那一套真的比原生还好吗? 3. Android动画效果(页面切换),效果不是很好,特别是Android4.3、4.4? 在iPhone上,由于分配给浏览器的内存多,动画效果是不错的,无论是CSS3还是js控制的。但在Android上,即便是加上GPU加速,可是效果还是不好,特别是Android4.3、4.4,动画还是存在卡顿情况。 有人说把下面: @-webkit-keyframes slideLeftIn { 0% { -webkit-transform: translate3d(100%,0,0)} 100% { -webkit-transform: translate3d(0,0,0)} } @-webkit-keyframes slideLeftOut { 0% { -webkit-transform: translate3d(0,0,0)} 100% { -webkit-transform: translate3d(-100%,0,0)} } @-webkit-keyframes slideRightIn { 0% { -webkit-transform: translate3d(-100%,0,0)} 100% { -webkit-transform: translate3d(0%,0,0) } } @-webkit-keyframes slideRightOut { 0% { -webkit-transform: translate3d(0%,0,0)} 100% { -webkit-transform: translate3d(100%,0,0)} } 改成: @-webkit-keyframes slideLeftIn { 0% { -webkit-transform: translate3d(100%,0,0)} 100% { -webkit-transform:none; } } @-webkit-keyframes slideLeftOut { 0% { -webkit-transform:none; } 100% { -webkit-transform: translate3d(-100%,0,0)} } @-webkit-keyframes slideRightIn { 0% { -webkit-transform: translate3d(-100%,0,0)} 100% { -webkit-transform:none; } } @-webkit-keyframes slideRightOut { 0% { -webkit-transform:none; } 100% { -webkit-transform: translate3d(100%,0,0)} } 这样可以加速。但是经过实践检验,根本没什么用,页面卡顿的还是卡顿。 Finally: 既然现实已经如此,那么我们能做的是: 1. 避免使用大片区域的动画效果(特别是单页页面切换)。 2. 不使用单页。 4. 是否不该用单页? 单页的坏处: 1. 增加了开发人员的开发复杂度,是页面DOM变得过于复杂。 2. 存在无法释放的内存(可能是框架本身,或开发者自己弄出来的)。 3. 单页的页面切换效果在Android自带浏览器效果不好。 4. 页面路由问题,当想直接打开某个子页,必须经过主页,然后跳转到子页。存在两层加载中问题。 Finally: 也鉴于在单页中这些痛苦问题,无聊是移动Web,还是Hybrid应用,我觉得都不要使用单页。 5. 对于zepto,是否换回jquery? zepto和jquery的现状: 1.zepto很久没更新了,而jquery在持续发展。 2.jquery毕竟是大众使用的,群众基础多。 3.很多控件是以jquery为基础,可能无法转换用zepto。 Finally: zepto作为一个jquery的缩减版,目的是想在移动Web的基础库上有更小的体积。而我在想,真的需要为了减少这么几十kb的大小去使用zepto吗?zepto(54.78KB,包含触摸事件部分),jquery 1.7(91.6KB),这两个数字都是压缩版的。 对于Hybrid 应用来说,这几十KB的问题根本不是问题,都是本地资源,加载速度可以忽略不计。 对于移动Web应用来说,jquery可以使用压缩版和缓存做优化。 所以我觉得,真心使用jquery就可以了。有种有趣的现象,就是有人为了引用某个控件(基于jquery),就同时引入zepto和jquery,这反而增加了资源体积。 6.tap事件? 这是zepto里面根据几个触摸事件模拟出来的事件,为了提高点击事件触发的速度,但是存在经典的“穿透”问题。所以如果只是为了提速,或者废弃使用zepto,完全可以使用fastclick,提高响应速度。 Finally: 回归本质,使用click,在click基础上使用fastclick。 7.字体图标多少为好? 字体图标使用的本质是为了图标在不同设备不失真、可以变颜色等字体能设置属性。绝不是为了这样做更酷,看起来页面没有引用一张图片。 那字体图标内置多少个为好,我认为是尽量少,左右上下等图标,大概10个左右。字体图标越少,体积越小;其他使用图片还可以利用到缓存。 Finally: 不要一股脑加了几百个字体图标作为内置图标, 虽然使用上简单了,但是有很多冗余。 总结 这几个问题是在公司框架重构想起的,感触最深的问题。 本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。 本文地址 :http://www.cnblogs.com/lovesong/p/5478116.html 本文转自 海角在眼前 博客园博客,原文链接: http://www.cnblogs.com/lovesong/p/5478116.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Centos安装Go语言环境

- 第一步:更新系统镜像源 ```bash dnf update -y && dnf upgrade -y ``` - 第二步:[go](https://go.dev/dl/) 安装包下载 ```bash tar xf xxx.tar.gz [-C 路径] ``` - 第三步:配置环境变量 ```bash # vim ~/.bashrc export export GOROOT=go安装包解压后的路径 export GOPATH=go工作区 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin export GOPROXY=go镜像源 # 使配置更新 source ~/.bashrc ``` - 第四步:测试是否可用 ```bash go version ```

优秀的个人博客,低调大师

洛书编程语言 1.4.8 发布

洛书1.4.8 STS 标准支持版本 LOSU-1.4.8 基本信息 项 内容 版本号 1.4.8 版本类型 STS 更新方式 滚动更新 更新内容 模板库 新增STL模板库支持,数组等被从解释器中永久移除,转换为以模板库的形式提供服务。 模板库安装方式 从release版本下载所需版本的源码包 编译所需平台的安装脚本make.losu 运行make.lsc完成安装 修复的转义字符标准 为了避免与IO的冲突,文件操作的转义字符修正为\\\\n,\\\\r,\\\\b 删除了对"的强制转义 修订 #I61EYZ done #I60H6T done #I60H5A done #I60E2K done 附件 文件名 内容 LPK_1.4.8_win32 32位Windows预编译的压缩包,包含stl0.1 LPK_1.4.8_win64 64位Windows预编译的压缩包,包含stl0.1 sources.tar 源码TAR包 demo OWLS--洛书编写的快速建站工具,可以用于个人博客等站点的快速搭建

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册