大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)

// 渲染表格 treetable.render({ treeColIndex: 2, // treetable新增参数 treeSpid: -1, // treetable新增参数 treeIdName: 'd_id', // treetable新增参数 treePidName: 'd_pid', // treetable新增参数 treeDefaultClose: true, // treetable新增参数 treeLinkage: true, // treetable新增参数 elem: '#table1', url: 'json/data1.json', cols: [[ {type: 'numbers'}, {field: 'id', title: 'id'}, {field: 'name', title: 'name'}, {field: 'sex', title: 'sex'}, {field: 'pid', title: 'pid'}, ]] });

Git submodule 子模块的管理和使用

to unstage) new file: . $ git ci -m "commit" $ git push origin HEAD:master 删除子模块 删除子模块比较麻烦,需要手动删除相关的文件,否则在添加子模块时有可能出现错误 同样以删除assets文件夹为例 删除子模块文件夹 $ git rm --cached assets $ rm -rf assets 删除.gitmodules文件中相关子模块信息 [submodule "assets"] path = assets url = https://github.com/maonx/vimwiki-assets.git 删除.

DDoS防护之TCP防护

DDoS防护之TCP防护 欢迎访问网易云社区,了解更多网易技术产品运营经验。 TCP协议,相信对于每一个开发工程师都不陌生。由于该协议是一个面向连接,可靠的特性,广泛应用于现在互联网的应用中。如常见的Web、SSH、FTP等都是基于TCP协议。目前TCP协议占全网的流量达到80%,因此这也成为黑客主要攻击的类别。 例如在2016年,造成美国大半个互联网下线的Dyn事件,10月21日,提

android基于socket.io实时通讯项目搭建

android基于socket.io实时通讯项目搭建 项目简介 image github: https://github.com/cn-ljb/android_im_socket.io 基于socket.io实现的Android IM 实时通讯开源项目 服务端代码见 - service demo 架构 kotlin + mvp + socket.io + okhttp + retrofit + rxjava + glide + eventbus 导入项目 修改 Constant.SOCKET_HOST 为你本地服务器端IP和端口(服务器端代码service demo) const val SOCKET_HOST = "http://172.16.201.33:9090" //loc ip and port 或者直接扫码

Linux下tcp socket通信优化与问题排查

Linux下tcp socket通信优化与问题排查 Linux下tcp socket通信优化与问题排查 @Date 2018.12.09 一. 优化 1. TPC接收窗口 问题 : 当TCP的接收窗口队列阻塞 - 发送方继续发 - 接受方丢掉 - 发送方重传 - 网络变糟糕 解决 : 接收方把接收缓存的大小告诉发送方 - 接收缓存满了 - 发送方不能发送 # 调大接收窗口缓存大小 net.ipv4.tcp_rmem = "40960 873800 41943040" net.core.rmem_max = 41943040 net.core.rmem_default = 873800 #

浏览器下Xpath实用技巧

浏览器下Xpath实用技巧 在浏览器环境下,一些强大的xpath标准方法没有被支持(如正则匹配方法matches()),只能利用有限的方法做抽取,下面是列出我常用的一些查找技巧、经验;不定时更新。 常用 以下面的分页组件节点结构为例: . var result = []; var nodesSnapshot = document.evaluate(xpathToExecute, element, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); i++) { result.push(nodesSnapshot.snapshotItem(i));

node实现小程序登录全过程(登录+身份验证+返回token)

', formData: { appid: wx.appid, secret: wx.secret, js_code: req.body.code, grant_type: 'authorization_code' } };collection('Users'); app.use('/checkUser',checkUser) 运行后,显示如下: 调试台已经显示了后台返回的token。 我把app.js中的用户登录使用promise进行了封装,这样可以让我在运行小程序并打开index页面时,可以正常显示token,否则会出现异步登录未成功,页面就已经渲染完成,无法获取到token的现象。

前端面经总结——阿里技术面

前端面经总结——阿里技术面 前言 第一次面阿里,感觉面试官十分注重你对自己做过项目的理解,是否熟悉这个业务流程,在此前提下是否对项目有过更深层次的总结和思考,对于每一个存在的问题和解决方案是否有更进一步的优化空间以及在脱离业务的场景下如何去解决此类问题。 面试 简单的自我介绍后,面试官直接开始考察我简历上的项目经历 项目了解 描述一下你负

JS进阶:编写一个JS代码打包工具

_exports(sum),看到这里,也许你会问我这个方法具有什么含义呢?其实很简单,在我的构思中,一个单独的JS文件就是一个单独的模块,一个单独的命名空间,在打包后将以一个闭包的形式呈现出来。_exports 的功能,就是向闭包外部,暴露自身内部的成员、方法或变量。它的用法: 1. _exports(name, val) _exports('PI', 3.1415926535);/src", "sourceMap": ["main.js"], "outputDir": ".

多域名 ssh git 配置

ssh/config Host 域名 User 用户名 IdentityFile ssh key的路径 IdentitiesOnly 只使用这里设置的key, 防止使用默认的 ServerAliveInterval 连接保持 ControlMaster auto 不用重新登录 ControlPath ~/.alibaba-inc.com User git IdentityFile ~/.ssh/id_gmail 连接测试 ssh -T git@github.com git 名称设置 git config --global user.name "User name" git config --global user.email user@example.com 如果不设置全局的, 在项目目录下执行, 去掉--global即可

同构(Isomorphic) web 是什么鬼?

同构(Isomorphic) web 是什么鬼? 最近遇到一个需求,需要快速开发一个可适配多种终端的H5 app,要求有比较好的用户体验(说白了就是界面切换快),同时也需要支持SEO(Search Engine Optimization),说人话就是对各种爬虫友好:)凭我个人经验来说对于体验要求高的H5,前端应尽量采取SPA(Single Page Application)架构,但是通常SPA无法做SEO,虽然可以单独为SEO写一套页面,但是这个工

js如何面向对象编程?(一)类与对象

// step2:把大象塞进去 pushIntoFridge(elephant); //冰箱装大象 类与对象的关系 类是对事物的抽象,对象是类所描述的具体事物。类与对象的关系就像汽车设计图与汽车实车的关系: 面向对象(OOP)的编程思维便是基于类与对象的编程。"面向对象"在软件工程的概念中有三个特征:封装、继承、多态。 封装:即是对所描述事物的抽象过程,将其行为和属性存放于"类"; console.log(car);

记录面试中一些回答不够好的题(Vue 居多)

width: 100%; grid-template-columns: 1fr 1fr 1fr;finally(() = { ··· }) finally 特点: 不接收任何参数。 finally 本质上是 then 方法的特例。 Promise.prototype.finally = function (callback) { let P = this.constructor return this.then( value = P.resolve(callback()).== vnode.text),文本节点的比较,需要修改,则会调用Node.textContent = vnode.text。 if( oldCh ch oldCh !

每天一点算法-时间复杂度 (Day1)

//运行一次 运行了2次,按照推导方法,“2”是常数,应该用"1"来取代;然后就没有出现阶项,所以忽略后面两个推导步骤。所以这里的时间复杂度为O(1)。 线性阶 for(var i = 0; i++){ //执行了2*n+3次 sum +=n; while(cout n){ cout = cout * 2; } 假设循环次数为x, 则次表达式成立:2x = n, 及x = log2n, 时间复杂度为O(logn)。 平方阶 for(var i=0;O(n^n) 感谢阅读!欢迎关注!持续更新中..

每天一点算法-桶排序 (Day2)

//用于保存结果 //待排序数据依次放入桶,这里遍历n次 arr.forEach(function(item){ //一个桶可以装多个数,所以用数组装 if(buckets[item]) buckets[item].push(item); //将桶里从头到尾连起来输出,这里遍历n次 buckets.forEach(function(item){ if(item) result = result.concat(item); }) return result; } var arr = [77, 6, 37, 96, 34, 6, 14]; console.log(sort(arr));

每天一点算法-冒泡排序 (Day3)

var len = arr.length - 1; i [6, 6, 14, 34, 37, 77, 96] 时间复杂度 可以看到运遍历次数为:(n-1) + (n-2) + (n-3) + . + 1 = (n^2 - n)/2, 按照大O阶推导方法得时间复杂度为 O(n^2) 感谢阅读!欢迎关注!持续更新中..

每天一点算法-直接插入排序 (Day5)

for(let i = 1;[6, 6, 14, 34, 37, 77, 96] 时间复杂度 遍历次数的计算与冒泡排序类似:n-1 + n-2 + … + 2 + 1 = n * (n-1) / 2 = 0.5 * n ^ 2 - 0.5 * n,所以时间复杂度为O(n^2)。 感谢阅读!欢迎关注!持续更新中..