wenmo8 发布的文章

项目引用了vue.js但是没用脚手架搭建项目,如何让e...其实。不需要,element从来没有说过要用es6的语法。 但是如果你不用,很多功能都需要你对javascript的模块化有很深的了解,感觉还不如去学一下语法,成本会更低。

什么时候不该使用es6箭头函数

想了一下,大概有以下几种情况吧: 不支持箭头函数的环境 目前支持箭头函数的环境毕竟还不多,仅 Safari、Chrome、Firefox 较新版本,Microsoft Edge、NodeJS 4.x、NodeJS 6.x 支持。IE 全系列都不支持。 在函数里面需要使用 this 变量的时候 箭


Babel转换es6怎么支持ie8

用babel转换es6在ie8下报错:在default处报缺少标识符 字符串或数字 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

我是用webpack配置的 test: /\.js/, loader: "babel-loader", que

浏览器怎么使用ES6的Proxy

axios不是支持ie9以上吗?为啥我的ie全挂了


一、VsCode使用 1.1 VsCode基本操作

Alt + Shift + F格式化代码


二、ES6新特性 2.1 let声明常量

2.2 const声明常量(只读变量)

2.3 解析表达式 2.3.1 数组解构

2.3.2 对象解构

2.4 字符串扩展

2.5 函数优化 2.5.1 函数参数的默认值

2.5.2 不定参数

2.5.3 箭头函数

2.5.4 实战:箭头函数结合解构表达式

2.6 对象优化 2.6.1 新增的API

2.6.2 声明对象简写 

2.6.3 对象的函数属性简写

2.6.4 对象扩展运算符

2.7 map和reduce 2.7.1 map

2.7.2 reduce

2.8 promise异步编排

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>

<body>
    <script>
        //1、 查出当前用户信息
//2、 按照当前用户的id查出他的课程
//3、 按照当前课程id查出分数
$.ajax({
    url: "mock/user.json",
    success(data) {
        console.log("查询用户:", data);
        $.ajax({
            url: `mock/user_corse_${data.id}.json`,
            success(data) {
                console.log("查询到课程:", data);
                $.ajax({
                    url: `mock/corse_score_${data.id}.json`,
                    success(data) {
                        console.log("查询到分数:", data);
                    },
                    error(error) {
                        console.log("出现异常了:" + error);
                    }
                });
            },
            error(error) {
                console.log("出现异常了:" + error);
            }
        });
    },
    error(error) {
        console.log("出现异常了:" + error);
    }
});
//1、Promise可以封装异步操作  
let p = new Promise((resolve, reject) => {
    //1、异步操作  
    $.ajax({
        url: "mock/user.json",
        success: function (data) {
            console.log("查询用户成功:", data) resolve(data);
        },
        error: function (err) {
            reject(err);
        }
    });
});
p.then((obj) => {
    return new Promise((resolve, reject) => {
        $.ajax({
            url: `mock/user_corse_${obj.id}.json`,
            success: function (data) {
                console.log("查询用户课程成功:", data) resolve(data);
            },
            error: function (err) {
                reject(err)
            }
        });
    })
}).then((data) => {
    console.log("上一步的结果", data) $.ajax({
        url: `mock/corse_score_${data.id}.json`,
        success: function (data) {
            console.log("查询课程得分成功:", data)
        },
        error: function (err) { }
    });
})

function get(url, data) {
    return new Promise((resolve, reject) => {
        $.ajax({
            url: url,
            data: data,
            success: function (data) {
                resolve(data);
            },
            error: function (err) {
                reject(err)
            }
        })
    });
}
get("mock/user.json").then((data) => {
    console.log("用户查询成功~~~:", data) return get(`mock/user_corse_${data.id}.json`);
}).then((data) => {
    console.log("课程查询成功~~~:", data) return get(`mock/corse_score_${data.id}.json`);
}).then((data) => {
    console.log("课程成绩查询成功~~~:", data)
}).catch((err) => {
    console.log("出现异常", err)
});
 </script>
</body>

</html>

2.9 模块化


在爬取网站之前,需要对网站规模和结构了解,常常会借助网站自身的robot.txt以及Sitemap文件,还有比如外部工具:Google搜索和WHOIS。

1. 检查robot.txt

    该文件可以让爬虫了解爬取该网站时存在哪些限制,以及一些网站结构线索,通常如下结构

        例1、禁止所有搜索引擎访问网站的任何部分

User-agent: *    Disallow: / 例2、允许所有的robot访问 User-agent: *    Disallow: (或者也可以建一个空文件 "/robots.txt" file) 例3、禁止某个搜索引擎的访问 User-agent: BadBot    Disallow: /        例4、允许某个搜索引擎的访问
User-agent: Baiduspider    Disallow:    User-agent: *    Disallow: / 例5、无论哪种代理,都应该在两次请求之间给予5秒抓取延迟,对于不允许链接/trap,会封禁ip。    User-agent: *    Crawl-delay:5    Disallow: /trap

2. 检查网站地图

    可以帮助定位网站最新内容。

3. 识别网站所用技术

    运用pip builtwith模块:

pip install builtwith

    builtwith将网站URL作为参数,下载对其分析,得到网站所用技术。

>>> import builtwith>>> builtwith.parse('https://www.csdn.net/'){'web-servers': ['OpenResty', 'Nginx'], 'programming-languages': ['Lua'], 'javascript-frameworks': ['Modernizr', 'jQuery'], 'web-frameworks': ['Twitter Bootstrap']}

4. 获取网站所用者

可以使用WHOTS协议查询域名注册者是谁,Python对该协议有对应的封装库,

pip install python-whois>>> whois.whois('https://www.csdn.net/'){'domain_name': 'CSDN.NET', 'registrar': 'NETWORK SOLUTIONS, LLC.', 'whois_server': 'whois.networksolutions.com', 'referral_url': None, 'updated_date': [datetime.datetime(2017, 3, 10, 0, 52, 46), datetime.datetime(2018, 2, 9, 1, 43, 52)], 'creation_date': datetime.datetime(1999, 3, 11, 5, 0), 'expiration_date': datetime.datetime(2020, 3, 11, 4, 0), 'name_servers': ['NS3.DNSV3.COM', 'NS4.DNSV3.COM'], 'status': 'clientTransferProhibited https://icann.org/epp#clientTransferProhibited', 'emails': ['abuse@web.com', 'Jiangtao@CSDN.NET'], 'dnssec': 'unsigned', 'name': 'Beijing Chuangxin Lezhi Co.ltd', 'org': 'Beijing Chuangxin Lezhi Co.ltd', 'address': 'B3-2-1 ZHaowei Industry Park', 'city': '等待的雨', 'state': 'Beijing', 'zipcode': '100016', 'country': 'CN'}


查看防火墙某个端口是否开放
firewall-cmd --query-port=80/tcp

开放防火墙端口80
firewall-cmd --zone=public --add-port=80/tcp --permanent

关闭80端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent  

配置立即生效firewall-cmd --reload 

查看防火墙状态
systemctl status firewalld

关闭防火墙
systemctl stop firewalld

打开防火墙
systemctl start firewalld

开放一段端口
firewall-cmd --zone=public --add-port=8121-8124/tcp --permanent

查看开放的端口列表
firewall-cmd --zone=public --list-ports

firewall-cmd --zone=public --add-port=80/tcp --permanent


1、首先查找端口,会显示出所有的端口,比如说要找到端口为“8080”的PID

netstat -ano


2、还可以精确查找

netstat -aon|findstr "8080"


3、关闭对应的端口

taskkill /t /f /pid "9608"

4、使用任务管理器关闭

查看详细信息,根据查找到的pid找到对应的程序进行,结束任务


OK