`
zccst
  • 浏览: 3319350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
作者: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 模块在浏览器环境无法正常加载。 解决思路一:开发服务器端组件,对模块代码静态分析,将模块与它的依赖一起返回给 ...
作者: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 ...
Global site tag (gtag.js) - Google Analytics