为了账号安全,请及时绑定邮箱和手机立即绑定

一些杂七杂八的前端相关

1、最近闭关(封闭式开发),模仿Nodejs造的一个和url相关的小模块,配合做个分页组件很不错:

(1)、获取参数:var id=iurls.query.id或var id=iurls.param('id');

(2)、设置参数:返回location.search;iurls.setParam(name, value);

(3)、GET请求:iurls.search({});

var iurls = function (loc){
    var search = loc.search.substr(1);
    var searchArr = search.indexOf('&') != -1 ? search.split('&') : [search];

    function getURLData(k) {
        var param = {};
        for (var i = 0; i < k.length; i++) {
            if (k[i] != "") {
                var v = k[i].split('=');
                for (var j = 0; j < v.length; j++) {
                    var key = decodeURIComponent(v[0]);
                    var value = decodeURIComponent(v[1]);
                    param[key] = value;
                }
            } else {
                return '';
            }
        }
        return param;
    }
    return {
        query: getURLData(searchArr),
        setParam: function(name, value) {
            // return search
            var param = getURLData(searchArr);
            if (param) {
                param[name] = value;
                var parArr = [];
                for (var i in param) {
                    parArr.push(i + '=' + param[i]);
                }
                return parArr.join('&');
            } else {
                return name + '=' + value;
            }
            //location.href=location.pathname+"?"+parArr.join('&');
            //return parArr.join('&');
        },
        param: function(par) {
            return getURLData(searchArr)[par];
        },
        search: function(s) {
            var ur = s.url;
            var data = s.data || {};
            var href = '';
            if (ur) {
                if (ur.indexOf('?') != -1) {
                    href = ur;
                } else {
                    href = ur + '?'
                }
            }
            var datas = [];
            for (var name in data) {
                if (name) {
                    datas.push(name + '=' + data[name]);
                }
            }
            if (href != '') {
                href = href.charAt(href.indexOf('?') + 1) == "" ? href : href + '&';
                location.href = href + datas.join('&');
            } else {
                location.href = loc.pathname + '?' + datas.join('&');
            }
        }
    }   
}(window.location);

2、ie9 iframe下静态资源报错,虽然程序能正常运行,但有些系统还是会无法运行;iframe不在页面上,由js输出,解决办法需:动态创建iframe;

3、Sass编译的方式很多,Koala没想用过;Sublime ctrl+b一键可编译;Grunt编译(前端自动化之利剑——Grunt);Gulp编译(前端自动化之神器 — Gulp);方式很多的,突然忘记了sass命令行的编译方式,有时也是一种简易的方式:

//(1)、直接编译:sass ./path/*.scss ./path/to/*.css

//(2)、编译后的style:sass --style compressed ./path/*.scss ./path/to/*.css
       * nested:嵌套缩进的css代码,它是默认值。
     * expanded:没有缩进的、扩展的css代码。
     * compact:简洁格式的css代码。
     * compressed:压缩后的css代码。

//(3)、监听文件改动即编译:sass --watch ./path/*.scss:./path/to/*.css

//(4)、sass的运算转换工具:sass -i进入;如进行rgb转16进制,rgb(0,0,0,)输出:#000000;type-of((1,2,3))输出:list;

4、解压文件

var fs = require('fs'),   
    unzip = require('unzip');  
//fs.createReadStream('./angular-swipe-master.zip').pipe(unzip.Extract({ path: './' })); 
var extract = unzip.Extract({ path:  './' });  
extract.on('error', function(err) {  
    console.log(err);  
});  
extract.on('finish', function() {  
    console.log("unziped!!");  
});  
fs.createReadStream('./angular-swipe-master.zip').pipe(extract);

5、压缩文件

var fs = require("fs"); 
var zip = require("node-native-zip"); 
var archive = new zip(); 

archive.addFiles([  
    { name: "app.j", path: "./app.js" }, 
    { name: "package.json", path: "./package.json" } 
], function (err) { 
    if (err) return console.log(err); 
    var buff = archive.toBuffer(); 
    fs.writeFile("./test2.zip", buff, function () { 
        console.log("ziped"); 
    }); 
});

6、关于Nodejs的静态资源压缩与缓存参见:Nodejs打造静态资源服务器与文件上传刚学Express那会,动态文件的gzip压缩,好长一段时间都没找到合适的方法,才发现就是这么简单……

app.js里添加compression模块:
先安装;var compress=require('compression');app.use(compress()); OK了动态文件也能gzip压缩了;然而。。。。。。。

闭关了3个星期,小站没时间更新,小伙伴不要忘了啊!

原文来自:值得收集的前端(Javascript、HTML、CSS)代码片段

点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消