玖叶教程网

前端编程开发入门

浏览器存储的不同类型简介

在后端开发中,存储是工作的常见部分。应用程序数据存储在数据库中,文件存储在对象存储中,瞬态数据存储在高速缓存中……似乎存在无限种存储任何类型数据的可能性。但是,数据存储不仅限于后端

在若依Vue中,角色是用来划分用户权限的一个重要概念

在若依Vue中,角色是用来划分用户权限的一个重要概念。每个角色对应着一组特定的权限,这些权限决定了用户在系统中可以进行哪些操作。

角色的值:

通常是一个唯一的标识符,比如字符串或数字。

在数据库中存储,与用户进行关联。

根据系统需求自定义,可以是简单的角色名称,也可以是更复杂的编码。

「设计模式」组合模式详解

前言

《设计模式自习室》系列,顾名思义,本系列文章带你温习常见的设计模式。主要内容有:

  • 该模式的介绍,包括: 引子、意图(大白话解释) 类图、时序图(理论规范)
  • 该模式的

如何有效避免JS内存泄漏

背景

其实在写这篇文章之前,我也想了很久,因为网上对这块的东西已经很多了,但有些读起来还是不容易让人理解,而且JS 中的内存管理, 我的感觉就像 JS 中的一门副科, 我们平时不会太重视, 但是一旦出问题又很棘手. 所以可以通过平时多了解一些 JS 中内存管理问题, 在写代码中通过一些习惯, 避免内存泄露的问题。

自写H5播放器代替超星学术的Flash播放器

超星学术目前仅有Flash播放器,没H5播放器,这次的情况比上次的

设计模式(32)--总结--结构型模式(7种)

0、参考

(1)https://www.toutiao.com/article/7137101970736824867

23种设计模式------组合模式(这种模式你一定用过!)

简介

组合模式(Composite Pattern),这种模式你或许没有听说过,但是一定用过,他是23种设计模式总比较常用的模式。

组合模式又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

如何模拟新建文件夹

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
list-style: none;
}
fieldset{
width: 920px;
margin: 0 auto;
padding: 20px;
cursor: pointer;
border-radius: 5px;
}
legend:hover{
text-decoration: underline;
}
ul{
overflow: hidden;/*清除浮动*/
}
ul>li{
width: 103px;
height: 106px;
margin: 5px;
float: left;
text-align: center;
padding-top: 10px;
border: 1px solid #ccc;
border-radius: 5px;
position: relative;
}
ul>li:hover{
cursor: move;
border: 1px dotted #666;
}
ul>li>img{
vertical-align: top;
}
ul>li>p{
height: 17px;
line-height: 17px;
font-size: 12px;
}
ul>li>span{
width: 14px;
height: 14px;
text-align: center;
line-height: 14px;
position: absolute;
right: 0;
top: 0;
color: #999;
font-size: 12px;
background-color: #eee;
display: none
}
ul>li:hover>span{
display: block;
}
ul>li>span:hover{
color: #333;
cursor: pointer;
}
</style>
</head>
<body>
<fieldset id="">
<legend>新建文件夹</legend>
<ul>
<li>
<img src="img/file.png"/>
<p>新建文件夹(1)</p>
<span>×</span>
</li>
<li>
<img src="img/file.png"/>
<p>新建文件夹(2)</p>
<span>×</span>
</li>
<li>
<img src="img/file.png"/>
<p>新建文件夹(3)</p>
<span>×</span>
</li>
</ul>
</fieldset>

<script type="text/javascript">
    //获取legend和ul元素
    var createFile = document.querySelector("legend");
    var ul = document.querySelector("ul");
    var trash = [];//先声明一个仓库 用来存储用户删除的文件夹
    var re = /\d+/g;//正则匹配数组


    //新建文件夹点击事件
    var index = 3;
    createFile.onclick = function(){
    if(trash.length){
        //数组里面有东西
        index = trash[0];
        //拿完之后清空数组
        trash.shift();
    }else{
        //如果已经把删除的元素全部新建完毕那么此时新建文件夹应该是li的长度
        index = ul.children.length + 1;
    }
    var li = document.createElement("li");//创建li标签

    var img = document.createElement("img");//创建img标签
    img.setAttribute("src","img/file.png");//给img标签增加src属性

    var p = document.createElement("p");//创建p标签
    var ptxt = document.createTextNode("新建文件夹("+index+")");//创建p的文本节点
    p.appendChild(ptxt);//把文本插入到p标签里面

    var span = document.createElement("span");//创建span标签
    var spantxt = document.createTextNode("×");//创建sapn的文本节点
    span.appendChild(spantxt);//把文本插入到span标签里面

    li.appendChild(img);//把img插入到li中
    li.appendChild(p);//把p插入到li中
    li.appendChild(span);//把sapn插入到li中


    ul.appendChild(li);//把li插入到ul里面
    }


    //删除
    //我们删除利用事件委托(已存在的最近的祖先元素)
    ul.onclick = function(e){
    //事件对象兼容
    var ev = e || window.event;
    //事件源
    var target = ev.target || ev.srcElement;
    if(target.nodeName === "SPAN"){
    //我先把要删除的东西存储起来
    //var trash = target.parentNode;//我们这种方式只能存一个东西
    //console.log(target.previousElementSibling.innerText.match(re))

    //字符串截取
    //trash.push(target.previousElementSibling.innerText.slice(6,-1))

    //使用正则表达式匹配
    trash.push(target.previousElementSibling.innerText.match(re));//数组尾部插入

    console.log(trash)


    //删除当前被点击的span的父元素li
    target.parentNode.parentNode.removeChild(target.parentNode)
    }
    }
</script>
</body>
</html>

C# 之门课程系列-24(c#教程)

HTML解析- HtmlAgilityPack

大家做过Python爬虫会发生Python有非常牛的库工具,像beatufulsoup等库,做爬页面确实非常方便。

HtmlAgilityPack是.net下的一个HTML解析类库。支持用XPath来解析HTML。这个意义不小,为什么呢?因为对于页面上的元素的xpath某些强大的浏览器能够直接获取得到,并不需要手动写。节约了大半写正则表达式的时间,当然正则表达式有时候在进一步获取的时候还需要写,但是通过xpath解析之后,正则表达式已经要匹配的范围已经非常小了。而且,不用正则表达式在整个页面源代码上匹配,速度也会有提升。总而言之,通过该类库,先通过浏览器获取到xpath获取到节点内容然后再通过正则表达式匹配到所需要的内容,无论是开发速度,还是运行效率都有提升。

关于H5唤醒APP的功能实现(千辛万苦)

啥话不说,先上js代码


  1. //启动app方法
  2. function startApp(url, url2) {

//url是跳转的scheme地址,这个建议下个反编译的软件,去第三方apk查他们设置的scheme_url和scheme_host是什么,我就是这样干的

<< < 1 2 3 4 5 6 7 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言