当前位置: 首页 > news >正文

松江九亭网站建设做网站是自己公司做好还是外包好

松江九亭网站建设,做网站是自己公司做好还是外包好,seo外链建设的方法有,学室内设计去哪个学校好为什么80%的码农都做不了架构师#xff1f; 构建 目前前端构建工具流行的是 grunk.js 功能是大而全#xff0c;但往往大而全的东西为了多样性 需要做额外的配置 我还是想要有一个专门为自己特性项目而生构建工具 我不想加载第三方的node模块#xff0c;也不… 为什么80%的码农都做不了架构师    构建 目前前端构建工具流行的是 grunk.js 功能是大而全但往往大而全的东西为了多样性 需要做额外的配置  我还是想要有一个专门为自己特性项目而生构建工具 我不想加载第三方的node模块也不想写配置 ,想要的功能也很简单只是根据文件名字进行合并   build.js 名字规则 a-b-c.js 或者 a-b-c.txt  a代表文件合并的顺序这个顺序跟文件显示的顺序一致 第一固定为0 最后固定为e  b代表合并后的文件名字  c代表自己的文件名字 以下代码会 寻找当前目录下src目录中的所有js,txt文件 提取b相同的文件 按照a顺序 进行合并 //将src目录中的js文件 按照文件名字规则 合并到js文件夹中 var fsrequire(fs); //顺序执行 function sear(arr,call){if(arr!arr[0])return;!function run(i,para){if(iarr.length){call(null,para);return;}arr[i](function(err,para){if(err!null){call(err);return;}run(i1,para);},para); }(0); } //遍历 并列执行 结果反馈给回调 function map(arr,fn,call){if(Object.prototype.toString.call(arr)[object Array]){var rs[],rerrnull,num1;for(var i0,larr.length;il;i){!function(t,i){fn(function(err,res){if(err)rerrerr;else rs[i]res;if(numl)call(rerr,rs);},t,i);}(arr[i],i)}}else if(Object.prototype.toString.call(arr)[object Object]){var keys[],num1,rs{},rerrnull;for(var key in arr)keys.push(key);for(var key in arr){!function(t,key){fn(function(err,res){if(err)rerrerr;else rs[key]res;if(numkeys.length)call(rerr,rs);},t,key);}(arr[key],key)}} } function each(arr,fn){for(var i0,larr.length,t;il;i){tarr[i];if(fn(t,i)false)break;} } console.time(构建js); sear([function(next){fs.readdir(__dirname/src,next); },function(next,fiels){var r{};each(fiels,function(t,i){var at.split(.);if(a[1]!jsa[1]!txt)return;var ba[0].split(-);if(b.length!3)return;var typeb[1];r[type]r[type]||[];r[type].push({sort:b[0],path:__dirname/src/t});});for(var key in r){r[key].sort(function(a,b){return ab});}next(null,r); },function(next,obj){map(obj,function(end,t,key){map(t,function(end1,t1,i1){fs.readFile(t1.path,utf-8,end1);},end);},next); },function(next,p){map(p,function(end,t,key){fs.writeFile(__dirname/js/key.js,t.join(\n/**/\n),end)},next); }],function(err,p){if(err)console.error(err);else console.timeEnd(构建js); }); route.js拆分后为下图 0 和 e 是 兼容ADM加载器 ,对外暴露api的开头和结尾 其他的文件都是单独的一个个模块 每个模块代码都不足百行 阅读起来会非常方便 1-route-type.js 数据类型判断 2-route-core.js 路由注册和解析实现核心部分 3-route-get.js  get路由匹配实现 4-route-decode.js 编码问题 5-route-querystring.js  url参数和json互相转换 querystring url: ?abbcd1 经过querystring会把上面url参数转换为 {a:b,b:c,d:1} 转换的结果存放req.query属性上 相反的操作   在使用to函数的时候可以传一个对象 querystring会转换为 url的形式   5-route-querystring.js   function each(arr,fn){for(var i0,larr.length,t;il;i){tarr[i];if(fn(t,i)false)break;} } //url参数和json互相转换 转换后存储在req.query属性中 !function(route){var toroute.to,useroute.use;function stringify(obj){var a[];for(key in obj){a.push(keyobj[key]);}return a.join()}use(function(req,next){var urlpreq.path.split(?)[1];if(!urlp){next();return;}var aurlp.split();var r{};each(a,function(t,i){var bt.split();r[b[0]]b[1];});req.queryr;next();});route.mix({to:function(path,obj){if(path.indexOf(?)-1obj){path?stringify(obj);}to(window.encodeURI(path));}}) }(route); 对于ie 67 浏览器 改变路由无法调用到相应的路由  下一步会对ie67  做兼容 以上所有代码 https://git.oschina.net/diqye/route.js 转载于:https://my.oschina.net/diqye/blog/477602
http://mrfarshtey.net/news/73202/

相关文章:

  • 石河子做网站公司购物网站建设基本流程
  • python怎么开发网站互联网服务提供商
  • 高明网站建设首选公司石家庄网站推广排名
  • 如何偷别人dedecms网站的模板wx网站开发
  • 杭州网站建设公司联系方式重庆网站建设有限公司
  • 创意图案设计网站百度有没有做游戏下载网站吗
  • 深圳分销网站设计费用wordpress批量修改链接
  • 网站上的信息可以做证据吗python编程入门
  • 大型自适应的网站开发南京网站制作希丁哥
  • 自己做的网站百度搜到wordpress主题恶意代码
  • 四川煤矿基本建设工程公司网站南海网官网
  • 金华网站建设网站网站建设公司生存
  • 邵东平台网站建设苏州十大互联网公司
  • 中国建设银行手机银行平台优化是什么意思
  • 信息网站建设的意义网站设计与网页制作项目教程
  • 房屋中介的网站怎么建设404错误页面放在网站的哪里
  • 如何在工商局网站上做网登广西住建厅行政审批系统
  • 北京制作网站多少钱东风地区网站建设
  • 怎么做免流网站常州外贸网站建设
  • wordpress按条件搜索功能上海外包seo
  • 成都企业网站专门做折扣的网站
  • 营销 网站制作网站建设 凡科
  • 大作业做网站淘宝客网站一般用什么做的
  • 网站设计扁平化wordpress 用户密码的加密算法
  • 专门做外国的网站wordpress 地图菜单
  • 外贸自助建站哪个好国家精品资源共享课程建设网站
  • 自设计网站手机网站设置
  • 手机网站公司哪家好在家做兼职哪个网站
  • 电脑建设网站服务器长沙网站建设外包
  • 古典风网站做改网站