懒人必备的移动端定宽网页适配方案
本文最初发布于我的个人博客: 咀嚼之味如今移动设备的分辨率纷繁复杂。以前仅仅是安卓机拥有各种各样的适配问题,如今 iPhone 也拥有了三种主流的分辨率,而未来的 iPhone 7 可能又会玩出什么新花样。如何以不变应万变,用简简单单的几行代码就能支持种类繁多的屏幕分辨率呢?今天就给大家介绍一种懒人必备的移动端定宽网页适配方法。首先看看下面这行代码:<meta name="viewport"...
View ArticleWebPack常用功能介绍
WebPack常用功能介绍概述Webpack是一款用户打包前端模块的工具。主要是用来打包在浏览器端使用的javascript的。同时也能转换、捆绑、打包其他的静态资源,包括css、image、font file、template等。个人认为它的优点就是易用,而且常用功能基本都有,另外可以通过自己开发loader和plugin来满足自己的需求。这里就尽量详细的来介绍下一些基本功能的使用。安装npm...
View Article你有必要知道的 25 个 JavaScript 面试题
你有必要知道的 25 个 JavaScript 面试题1、使用 typeof bar === "object"判断 bar是不是一个对象有神马潜在的弊端?如何避免这种弊端?使用 typeof的弊端是显而易见的(这种弊端同使用 instanceof):let obj = {}; let arr = []; console.log(typeof obj === 'object'); //true...
View Article【译】使用 AngularJS 和 Electron 构建桌面应用
原文: Creating Desktop Applications With AngularJS and GitHub ElectronGitHub 的 Electron框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和 JavaScript 编写跨平台的桌面应用。它是 io.js运行时的衍生,专注于桌面应用而不是 web 服务端。Electron 丰富的原生 API...
View ArticleHybrid APP架构设计思路
关于Hybrid模式开发app的好处,网络上已有很多文章阐述了,这里不展开。本文将从以下几个方面阐述Hybrid app架构设计的一些经验和思考。原文及讨论请到 github issue通讯作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开。Native(以Android为例)和H5通讯,基本原理:Android调用H5:通过webview类的...
View ArticleJavaScript 方法的4种调用模式
函数(Function)是JavaScript的基本模块单元,JavaScript的代码重用, 信息隐藏,对象组合等都可以借助函数来实现。 JavaScript中的函数有4种调用模式:方法调用(Method Invocation Pattern)函数调用(Function Invocation Pattern)构造函数调用(Constructor Invocation...
View Article浏览器同源政策及其规避方法
浏览器安全的基石是"同源政策"( same-origin policy)。很多开发者都知道这一点,但了解得不全面。本文详细介绍"同源政策"的各个方面,以及如何规避它。一、概述1.1 含义1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。最初,它的含义是指,A网页设置的...
View Article兼容所有浏览器的 DOM 载入事件
本文就页面载入问题讨论 DOMContentLoaded、 load、 readyState等DOM事件的浏览器兼容性, 并给出怎样绑定DOM载入事件以兼容所有的浏览器。 接着介绍jQuery对该问题的实现源码,以及jQuery中 $(document).ready()和...
View Article样式表的载入会延迟DOM载入事件
绝大多数情况下我们总是让JavaScript在DOM载入后再开始执行。 不管是直接用 DOM API 实现还是使用 jQuery,最终都是 DOMContentLoaded事件在起作用。 本文讨论一个我们习以为常却很少了解的问题: 样式文件的载入会延迟脚本执行,以及 DOMContentLoaded事件的触发。DOMContentLoaded事件页面文档(DOM)完全加载并解析完毕之后,会触发...
View Article异步脚本载入提高页面性能
可能很多人都知道JavaScript的载入和渲染会暂停DOM解析,但可能仍缺乏直观的体验。 本文通过几个例子详述脚本对页面渲染的影响,以及如何使用异步脚本载入策略提供页面性能和用户体验。 包括在脚本载入缓慢或错误时尽早显示整个页面内容,以及早点结束浏览器忙提示(进度条、旋转图标、状态栏等)。DOM 渲染流程要理解异步脚本载入的用处首先要了解浏览器渲染DOM的流程,以及各阶段用户体验的差别。...
View Article404错误处理:重定向还是直接404?
小型网站开发通常会使用某种Web应用框架,比如类似Spring、Express、Django等框架。 这些框架会给出自定义错误页面的方式。当404发生时Web框架会渲染并返回对应的错误页面。 这是最自然和直接的错误处理方式,但有时我们希望错误页面可以单独Serve,比如放到CDN上。 本文档依据RFC 2616(HTTP...
View Article揭秘babel的魔法之class魔法处理
2017年,很多人已经开始接触ES6环境,并且早已经用在了生产当中。我们知道ES6在大部分浏览器还是跑不通的,因此我们使用了伟大的Babel来进行编译。很多人可能没有关心过,经过Babel编译之后,我们华丽的ES6代码究竟变成了什么样子?这篇文章,针对Babel对ES6里面“类class”的编译进行分析,你可以在线...
View ArticleJavaScript 启动性能瓶颈分析与解决方案
JavaScript 启动性能瓶颈分析与解决方案翻译自 Addy Osmani 的 JavaScript Start-up Performance,从属于笔者的 Web 前端入门与工程实践。本文已获得原作者授权,为InfoQ中文站特供稿件,首发地址为 这里;如需转载,请与InfoQ中文站联系。随着现代 Web...
View ArticleWeb性能优化
1 Web性能优化Web网站的性能细线在几个方面:网站首页加载速度动画的流畅度通过分析浏览器的渲染原理、资源对渲染的影响,得出优化网站性能的办法。2 查看性能的工具Chrome的 Timeline面板录制网页加载的过程,分析记录浏览器渲染过程中每个过程的耗时。2.1 录制时注意事项禁用浏览器缓存: Network Tab下的 disable...
View Article微豆 - Vue 2.0 实现豆瓣 Web App 教程
微豆 Vdo一个使用 Vue.js 与 Material Design 重构 豆瓣的项目。 项目网站 http://vdo.ralfz.com/GitHub https://github.com/RalfZhang/Vdo快速使用# 克隆项目到本地 git clone https://github.com/RalfZhang/Vdo.git # 安装依赖 npm install # 在...
View ArticleWeb项目如何防止客户端重复发送请求
在Web项目中,有一些请求或操作会对数据产生影响(比如新增、删除、更新),针对这类请求一般都需要做一些保护,以防止用户有意或无意的重复发起这样的请求导致的数据错乱。本文总结了一些防止客户端重复发送请求的方法。方法一:JS监听Form的onsubmit事件在经典场景下,浏览器通过Form发送请求。因此只需要在Form...
View ArticleH5与Native交互之JSBridge技术
做过混合开发的很多人都知道Ionic和PhoneGap之类的框架,这些框架在web基础上包了一层Native,然后通过Bridge技术使得js可以调用视频、位置、音频等功能。本文就是介绍这层Bridge的交互原理,通过阅读本文你可以了解到js与ios及android底层的通讯原理及JSBridge的封装技术及调试方法。一、原理篇下面分别介绍IOS和Android与Javascript的底层交互原理I...
View Article