标签:
var i = 1; var max = 30; module.exports = function () { for (i -= 1; i++ < max; ) { console.log(i); } max *= 1.1; };
使用require方法,加载example.js。 // main.js var example = require(‘./example.js‘);
git checkout feature
git add feature.js
git commit -m ‘添加新文件‘
git rebase master
git push origin feature:feature
加载速度快
兼容各种浏览器
http://www.iteye.com/news/24291
function getQuery(url) { var query = url.split(‘?‘)[1]; if (!query) { return {}; } query = query.split(‘&‘); var arr = {}; for (var i = 0, l = query.length; i < l; i++) { var temp = query[i].split(‘=‘); var key = decodeURIComponent(temp[0]);// var value = decodeURIComponent(temp[1] == null ? ‘‘ : temp[1]);//value可能是空 if (key in arr) { //这段if else是处理key重复 var valArr = arr[key]; if (typeof valArr === ‘string‘) { valArr = [valArr]; } valArr.push(value); arr[key] = valArr; } else { arr[key] = value; } } return arr; }
jsonp 加载script脚本来跨域
通过修改document.domain来跨子域
使用window.name来进行跨域
使用HTML5中新引进的window.postMessage方法来跨域传送数据
flash
var util = require(‘./util‘); var getSetAttribute = require(‘./support‘).getSetAttribute; // 用于匹配标识 var identifier = ‘(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+‘; // 胜天匹配标签 var rTag = new RegExp(‘^(‘ + identifier + ‘|[*])‘); // 用于匹配类 var rClass = new RegExp(‘^\\.(‘ + identifier + ‘)‘); // 用于匹配属性 var rAttribute = new RegExp(‘^‘ + ‘\\[(‘ + identifier + ‘)\\]‘); // 判断元素是否存在属性 var hasAttr = getSetAttribute ? function (elem, name) { return elem.hasAttribute(name); } : function (elem, name) { var val = elem.getAttributeNode(name); if (val && val.specified) { return val.value != null; } return elem.getAttribute(name) != null; }; // 用于匹配样式中的空白字符 var rspace = /[\t\r\n\f]/g; /** * 拆分基础表达式 * @note 支持标签选择器、类选择器和属性存在选择器 * @note eg: li .abc [data-role] li.abc li[data-role] .abc[data-role] li.abc[data-role] * @param {string} expr 表达式 * @return {Array.<string>|null} 返回的表达式数组,表达式不合法是返回空 */ function token(expr) { var ret = []; var tag = null; expr = util.trim(expr); while (expr.length) { var match = rTag.exec(expr) || rClass.exec(expr) || rAttribute.exec(expr); if (!match) { // 传入的不是一个合法的表达式 return null; } var matched = match.shift(); expr = expr.slice(matched.length); if (matched.charAt(0) === ‘.‘) { ret.unshift(matched); } else if (matched.charAt(0) === ‘[‘) { ret.push(matched); } else { if (tag && tag !== matched) { // 不应当出现两个不同的标签 return null; } tag = matched; } } tag && ret.unshift(tag); return ret.length ? ret : null; } /** * 检查元素是否匹配基本表达式 * @note 支持标签选择器、类选择器和属性存在选择器 * @note eg: li .abc [data-role] li.abc li[data-role] .abc[data-role] li.abc[data-role] * @param {HTMLElement} elem 要匹配的元素 * @param {string|Array} expr 基本表达式 * @return {*} 返回匹配结果 */ function matches(elem, expr) { // 排除所有的非法情况 if (!elem || elem.nodeType !== 1 || !expr) { return false; } // 解析expr if (typeof expr === ‘string‘) { expr = token(expr); } if (!expr) { return; } var className = ‘‘; for (var i = 0, l = expr.length; i < l; i++) { var matched = expr[i]; if (matched.charAt(0) === ‘.‘) { className = className || (elem.className ? (‘ ‘ + elem.className + ‘ ‘).replace(rspace, ‘ ‘) : ‘‘); var clazz = matched.slice(1); if (!~className.indexOf(‘ ‘ + clazz + ‘ ‘)) { return false; } } else if (matched.charAt(0) === ‘[‘) { if (!hasAttr(elem, matched.slice(1, -1))) { return false; } } else { if (!util.nodeName(elem, matched)) { return false; } } } return true; }
标签:
原文地址:http://www.cnblogs.com/QingFlye/p/4293257.html