在传统的 web 优化中,我们可以采取压缩、拆包、动态加载等方法减少首屏资源大小,也能通过离线包、页面直出等方案加速 html 返回,之前一篇 h5 秒开大全有部分简析。在大部分场景中,这些方案都足够用,也能得到出色的效果。但仍有两种无法尽善尽美的地方:其一是短暂的白屏现象不可避免,其二是对于超大型 web 应用难以做到秒开。结合客户端特性,我们有没有办法,进一步做到极致,打开 web 页面和打开客户端页面无差异的体验呢?

前言

html css javascript 可以算是前端必须掌握的东西了,但是我们的浏览器是怎样解析这些东西的呢 我们如何处理 html css javascript 这些东西来让我们的网页更加合理,在我这里做了一些实验,总结起来给大家看看。

前言

随着 Web 前端开发由 PC 转向 Mobile,作为前端工程师,除了需要去学习掌握移动端的新特性外,还需要面对大量移动端特有的难题,其中之一就是——怎么调试移动端页面? 针对调试的问题,现在已经有一些很好的解决方案,比如:weinre、chrome remote、手 Q 浏览器 Inspector,不过这些方案的门槛都较高,需要满足一些额外的条件。目前,在日常的开发调试工作中,打日志依然是一种常见的调试手段,通过日志内容来判断当前页面运行的状态,而日志的输出形式又有很多种,有 img 请求、dialog 弹窗、alert 等等,但这些输出方式都不能很好的满足我们的需要,甚至存在一些问题,所以 Rosin 诞生了。

关于 Rosin

Rosin 是一个 Fiddler 插件,它能接收页面中的 console 的输出,将内容持久存储在本地,并展现在 Fiddler 面板。 如果你的项目是通过 Fiddler 代理来开发调试手机页面,那么 Rosin 将会是你的好帮手。
项目地址:  http://alloyteam.github.io/Rosin/

这主题主要是早期对 web audio api 的一些尝试,这里整理一下以便以后翻阅,如有错误,诚请指正。

在真正进入 Web Audio API 开发之前,需要先弄清两个概念:音频上下文(AudioContext)、音频节点(AudioNode);

Web Audio API 是一套以音频上下文(AudioContext)为基础的接口系统;基本上每一次的开发都需要第一个用到,

看下 W3C 对 AudioContext 的描述:

This interface represents a set of AudioNode objects and their connections. It allows for arbitrary routing of signals to the AudioDestinationNode (what the user ultimately hears). Nodes are created from the context and are then connected together. In most use cases, only a single AudioContext is used per document.

大意是一个 AudioContext 代表一系列音频节点以及节点之间的连接方式,它允许一个或以上的音频信号在经过任意的连接之后最终连接在音频播放设备节点上;节点都是可以通过音频上下文对象然后连接到了一起;通常一个文档中只需要一个一个音频上下文对象即可。

腾讯 Web 前端 JX 框架入门教程 (二)
In JavaScript on 2013年08月31日 by view: 17,283
8

Ajax 和模版

当你需要不刷新页面而加载更多数据,ajax 是个不错的选择,怎么把 ajax 异步加载的数据优雅地拼接起来,就需要用到模版引擎了。复杂的交互都离不开 ajax 和模版,下面介绍如何在 JX 中使用 ajax 和模版。
处理 ajax,我们主要用到 http 包的 ajax 方法:J.http.ajax(uri, option)
第一个参数是 ajax 请求的 url,第二个参数是一个包括请求选项的 Object。
示例代码

原文:http://coding.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/

作者:

译者按:本人第一次翻译外文,言语难免有些晦涩,但尽量表达了作者的原意,未经过多的润色,欢迎批评指正。另本文篇幅较长、信息量大,可能难以消化,欢迎留言探讨细节问题。本文主要关注 V8 的性能优化,部分内容并不适用于所有 JS 引擎。最后,转载请注明出处: )

使用事件代理

有时候我们会感觉到页面反应迟钝,这是因为 DOM 树元素中附加了过多的事件句柄并且些事件句病被频繁地触发。这就是为什么说使用事件代理是一种好方法了。如果你在一个 div 中有 10 个按钮,你只需要在 div 上附加一次事件句柄就可以了,而不用去为每一个按钮增加一个句柄。事件冒泡时你可以捕捉到事件并判断出是哪个事件发出的。

【高性能前端 2】高性能 CSS
In Web 前端优化 on 2012年10月10日 by view: 29,637
27

避免使用 @import

有两种方式加载样式文件,一种是 link 元素,另一种是 CSS 2.1 加入 @import。而在外部的 CSS 文件中使用 @import 会使得页面在加载时增加额外的延迟。虽然规则允许在样式中调用 @import 来导入其它的 CSS,但浏览器不能并行下载样式,就会导致页面增添了额外的往返耗时。比如,第一个 CSS 文件 first.css 包含了以下内容:@import url("second.css")。那么浏览器就必须先把 first.css 下载、解析和执行后,才发现及处理第二个文件 second.css。简单的解决方法是使用<link> 标记来替代 @import,比如下面的写法就能够并行下载 CSS 文件,从而加快页面加载速度:

【高性能前端 1】高性能 HTML
In Web 前端优化 on 2012年10月10日 by view: 29,922
34

避免使用 Iframe

Iframe 也叫内联 frame,可以把一个 HTML 文档嵌入到另一个文档中。使用 iframe 的好处是被嵌入的文档可以完全独立于其父文档,凭借此特点我们通常可以使浏览器模拟多线程,需要注意的是使用 iframe 并不会增加同域名下的并行下载数,浏览器对同域名的连接总是共享浏览器级别的连接池,即使是跨窗口或跨标签页,这在所有主流浏览器都是如此。也因为这样这让 iframe 带来的好处大打折扣。

腾讯 Web 前端 JX 框架入门教程 (一)
In Web开发 on 2012年09月05日 by view: 11,814
5

什么是 JX 框架

JX 框架 (Javascript eXtension tools) 是模块化的非侵入式 Web 前端框架,适用于 Web Page 和 Web App 项目的开发,特别适合构建和组织大规模、工业级的 Web App,腾讯 WebQQ、腾讯 Q+等产品都是采用 JX 框架开发,兼容目前所有主流浏览器。
JX 框架具有以下特点:

  • 微内核设计,内核可完全分离出来
  • 原生对象零污染,随着 Web App 越来越复杂,对原生对象的零污染也体现的越来越重要了
  • 模块封包,采用命名空间、闭包等方式建立了模块封包的体系,模块自身做了良好的架构分离,各个模块之间可以自由拼装组合
  • 原子级封装,最大限度保留了代码的执行效率,接近原生的接口,降低了学习门槛
  • 无缝集成各种 js 框架:jQuery, YUI, Mootools, Prototype.js,Mini,Sizzle,cssQuery,xpath,JSON 等等

第一个程序

没错,正如你所想的,我们要写的第一个程序是 “hello world”,通过这个程序,你可以对使用 JX 框架有个概括的了解。