JS中获取cookie的最简单方式

const getCookie = (name) => document.cookie.match(`[;\s+]?${name}=([^;]*)`)?.pop();

// 比如cookie如下: a=b; c=d
// 使用
getCookie('c') // d

其中match是字符串的原型方法。

str.match(regexp)

如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp

以上,所以完全不必写一个正则,因为正则拼字符串还要使用new RegExp构造方法,然而match内部。已经隐式的判断了。

string原型上search方法同样的实现原理,因为后者指返回索引,类似indexOf,所以性能会好一些。

有点跑题,不妨跑的再远一些。。。

其实string身上的match方法实际是调用了正则原型RegExp[Symbol.match]方法。

const str = 'foo';
str.match(/foo/); // ['foo']
RegExp.prototype[Symbol.match].call(/foo/, str); //['foo']

js函数明明已经定义,却显示xxx()is not defined的解决办法

在js代码中,偶尔会碰到函数明明已经定义,却提示xx() is not defined
如下如:
在这里插入图片描述
js代码如下:
在这里插入图片描述
明明已经执行了一遍了,但是定时器里的就是找不到

一直出现上面的错误提示

解决办法其实很简单,将代码改写为如下形式即可:
在这里插入图片描述
完美解决!!快去试试吧。

底层原理目前还不清楚,想起来了再来填坑。

Tomcat:基础安装和使用教程

此文记录了 Tomcat 的基本使用方法,主要为了强化记忆。

安装步骤

第一步:下载和安装 Java

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

安装并设置JAVA_HOME环境变量:

第二步:下载和解压 Tomcat

下载地址:http://tomcat.apache.org/

第三步:修改端口号

.NET 我使用的是 80xx,Php 我使用的是 81xx,Java 我使用的是 82xx。

修改D:\apache-tomcat-8.0.0-RC3\conf\server.xml:

复制代码
 1   <Service name="Catalina">
 2 
 3     <!--The connectors can use a shared executor, you can define 

apache 到nginx的rewrite规则转换

apachenginx 的rewrite规则转换

重定向到主站点

在他们的共享主机生活中,曾经使用 Apache 的.htaccess文件配置所有内容的人通常会翻译以下规则:

RewriteCond  %{HTTP_HOST}  example.org
RewriteRule  (.*)          http://www.example.org$1

像这样:

server {
    listen       80;
    server_name  www.example.org  example.org;
    if ($http_host = example.org) {
        rewrite  (.*)  http://www.example.org$1;
    }
    ...
}

 

这是一种错误,繁琐且无效的方式。正确的方法是为 定义一个单独的服务器:…

    

将元素从iframe中拖拽到上层网页的任意位置。

iframe代码: json

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>HTML文档</title>
<meta name="keywords" content="">
<meta name="description" content="">
</head>

<body>

    <div draggable='true' id="hahaha" class="box">

ddddd 
    </div>


    <div draggable='true' id="hahaha2" class="box">

      ddddd 
          </div>
<script>

    /** Iframe code **/
//say you have this div inside 

web客户端存储

现代 web 浏览器提供了很多在用户电脑 web 客户端存放数据的方法 — 只要用户的允许 — 可以在它需要的时候被重新获得。这样能让你存留的数据长时间保存,保存站点和文档在离线情况下使用,保留你对其站点的个性化配置等等。本篇文章只解释它们工作的一些很基础的部分。

Prerequisites: JavaScript 基础 (查看 第一步构建的块JavaScript 对象), 基础的客户端 API
Objective: 学习如何使用客户端存储 API 来存储应用数据。

IndexedDB API

indexedDB 是用于客户端存储大量结构化数据(包括文件/blob)的低级 API。此 API 使用索引来启用对这些数据的高性能搜索。虽然Web 存储对于存储少量数据很有用,但它对于存储大量结构化数据的用处不大。IndexedDB 提供了一个解决方案。这是 MDN 的 IndexedDB 覆盖范围的主要登录页面——在这里我们提供了指向完整 API 参考和使用指南、浏览器支持详细信息以及关键概念的一些解释的链接。

注意:此功能在Web Workers中可用

注意: IndexedDB API 功能强大,但对于简单的情况可能看起来过于复杂。如果您更喜欢简单的 API,请尝试另请参阅部分中的库,这些库使 IndexedDB 对程序员更友好。

浏览器数据库 IndexedDB(一) 概述

IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。

背景

随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。

现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小不超过4KB,且每次请求都会发送回服务器;LocalStorage 在 2.5MB 到 10MB 之间(各家浏览器不同),而且不提供搜索功能,不能建立自定义的索引。所以,需要一种新的解决方案,这就是 IndexedDB 诞生的背景。…