- 浏览: 3319350 次
- 性别:
- 来自: 北京
最新评论
-
yzq21056563:
感谢作者分享~请教下,http://www.lisa33xia ...
CSS基础:text-overflow:ellipsis溢出文本 -
u012206458:
$.ajax的error,complete,success方法 -
DEMONU:
谢谢,虽然不能给你赞助,但是要给你顶
mysql中key 、primary key 、unique key 与index区别 -
njupt_tolmes:
阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿滕庆亚 ...
CSS基础:text-overflow:ellipsis溢出文本 -
zenmshuo:
用过SpreadJS,也包含数据可视化的图表
推荐几个web中常用js图表插件
文章列表
作者:zccst
参考资料:如何使用 Grunt 构建一个中型项目 #672
https://github.com/seajs/seajs/issues/672
1,构建
(1)package.json
{
"family": "test",
"version": "0.0.1",
"name": "gruntTest",
"spm": {
"alias": {
...
作者:zccst
一、LocalStorage 和 sessionStorage
2015-3-27 第二个坑
惊呆的事实:不管是Boolean,还是Number,还是其他类型,一律转为String存储。
localStorage.setItem('aa', false);
localStorage['aa'] === false; //false
localStorage['aa'] === "false";//true
也即是存储在localStorage后,将布尔型数据改成字符串了。
同理:
localStorage.a = 0;
localStorage.a ...
作者:zccst
旧版:
forword()
backword()
go(number)
HTML5中新增了
onhashchange 浏览器兼容性较好,用得较多
pushState / replaceState / onpopState
一、onhashchange
hashchange事件在当前页面URL中的hash值发生改变时触发 (查看location.hash).
区别:
...
作者:zccst
一、先来点最重要的
后端:CommonJS(原来叫ServerJS)
前端:RequireJS(AMD),Seajs(CMD)
CommonJS:JavaScript 并没有内置模块系统,CommonJS 致力于提高 JavaScript 程序的可移植性和可交换性,无论是在服务端还是浏览器端。
缺点:由于require是同步的。模块系统需要同步读取模块文件内容,并编译执行以得到模块接口。然而在浏览器端困难多多。因为script天生异步,传统CommonJS 模块在浏览器环境无法正常加载。
解决思路一:开发服务器端组件,对模块代码静态分析,将模块与它的依赖一起返回给 ...
seajs压缩打包过程
- 博客分类:
- seajs和requirejs
作者:zccst
一、构建过程
CMD 模块在构建时,有两个基本操作:
1,提取操作,用来提取模块的标识 id 和依赖 dependencies。
2,压缩操作。经过上面的提取操作后,构建工具就可以调用任何 JS 压缩工具来进行压缩了,require 参数也可以被压缩成任意字符。
举例,在a.js
define(function(require, exports) {
var b = require('./b');
var c = require('./c');
});
//代码将改为
define('xxx/1.0.0/a', ['./b', './c'], fu ...
作者:zccst
终于明白为什么项目中加这个文件了,原来是为了载入模板。
首先,使用seajx-text加入模板
然后,再用Hogan或mustache解析模板,完成替换
一、文本插件seajs-text
在 JavaScript 中嵌入 HTML 模板很不方便,特别是当模板内容有多行时。有了 Sea.js, 一切迎刃而解。
首先,需要引入文本插件:
<script src="path/to/sea.js"></script>
<script src="path/to/seajs-text.js">< ...
作者:zccst
在 CMD 规范中,一个模块就是一个文件。代码的书写格式如下:
define(factory);
define Function
define 是一个全局函数,用来定义模块。
define define(factory)
define 接受 factory 参数,factory 可以是一个函数,也可以是一个对象或字符串。
factory 为对象、字符串时,表示模块的接口就是该对象、字符串。比如可以如下定义一个 JSON 数据模块:
define({ "foo": "bar" });
也可以通过字符串定义模板模块:
defi ...
作者:zccst
flush 插件
通过 combo 插件,我们可以对同一数组中的加载项进行合并加载。通过 flush 插件,我们可以更进一步减少 HTTP 请求数。
使用场景
看代码:
seajs.use('a');
seajs.use('b');
seajs.use('c');
seajs.use('d');
Sea.js 默认会发送 4 个独立请求。
如果能在 use 调用时不发送请求,等到多次 use 后,在合适的时机统一触发就好了。 这就是 flush 插件的用武之地。
使用方式
使用方式和 combo 插件一样,推荐以下方式:
<script src=&qu ...
作者:zccst
两大好处:
1,通过exports暴露接口。不需要命名空间,不需要全局变量。
2,通过require引入依赖。让依赖内置,开发者只关心当前模块的依赖,其他事情Seajs都会自动处理好。
其他好处:
1,模块的版本管理。通过别名配置,配合构建工具,可以比较轻松地实现模块的版本管理。
2,提高可以维护性。
3,前端性能优化。通过异步加载模块,对性能非常有益。
4,跨环境共享模块。
随着Dojo,YUI3,Node.js推广和流行,前端模块化才开始深入人心。
一类是大教堂模式。如Dojo,YUI3,KISSY等。所有组件都是颗粒化、模块化的,各组件之间层层分级、环环相扣。 ...
作者:zccst
一、DOM操作文档树
其实对于DOM系列的学习,回头想想也就如下几个方面
1,节点查找和遍历
(1)查找的四个方法+选择器
getElementById, getElementByName, getElementByTagName, getElementByClassName
通过css选择器选取元素:#id .class div input[name="xx"] span.fatal.error
querySelectorAll("选择器");//不支持伪元素
querySelector("选择器"); ...
作者:zccst
CSS的优先级?内联和important哪个优先级高?
ID 和 CLASS
Class 可继承
伪类A标签可以继承,列表 UL LI DL DD DT 可继承
优先级就近原则,样式定义最近者为准
载入样式以最后载入的定位为准
!important > [ id > class > tag ]
Important 比 内联优先级高
另外 CSS 优先级法则:
A 选择器都有一个权值,权值越大越优先;
B 当权值相等时,后出现的样式表设置要优于先出现的样式表设置;
C 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式 ...
作者:zccst
如何在ie下模拟DOMContentLoad 事件
(看过的, 又忘了, 看来没掌握好) 不知道................... 应该用 创建一个指向空的 src=http://void(0); defer, ie支持这个用defer, 浏览器再DOM加载完才触发, 所以在 script 的 readstate == &qu ...
作者:zccst
给数组添加一个去重方法
计算字符串的字符重复次数
url参数转化为对象
作者:zccst
Ajax的缺点:
1.破坏浏览器后退按钮的正常行为。在动态更新页面后,用户无法回到前一个页面的状态,这是因为浏览器只能记下历史记录中的静态页面。
2.使用JavaScript作Ajax的引擎,JavaScript的兼容性和Debug本身就让 ...
作者:zccst
严格模式与混杂模式的区分?如何触发这两种模式?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra ...