- uniapp实现全局设置字体大小(字体大小切换)
矽东
uniappuni-appjavascript前端
效果图实现步骤1.安装配置postcss-px-to-viewpornpminstallpostcss-px-to-viewport--save-dev2.根目录下创建一个postcss.config.js文件,文件内容如下:constpath=require('path')module.exports={ parser:'postcss-comment', plugins:{ 'postcss
- uniapp + uView动态表单校验方案
Ted_Fan
uni-app
文章目录概要技术栈调整uView框架的Form页面代码注意事项概要最近项目上有个功能,需要给动态的form表单添加异步校验,经多方资料查找与汇总,现把解决方案记录分享一下技术栈本项目使用的技术栈是uniapp,前端UI框架使用的是uView调整uView框架的Form找到文件:uni_modules\uview-ui\components\u-form\u-form.vue然后修改源码,//原始代
- nestjs JWT认证
郭俊强
android
注:该文档目前只对jwt做处理,缺少登录其它校验、以及redis部分,后续更新1、安装npminstall--save@nestjs/jwtpassport-jwtnpminstall--save@nestjs/passportpassportnpminstall--save-dev@types/passport-jwt2、注册jwt文档全局模块中引入jwtModule,提供密钥及过期时间,并导出
- NestJS-Redis 项目常见问题解决方案
解岭芝Madeline
NestJS-Redis项目常见问题解决方案nestjs-redisRedis(ioredis)moduleforNestframework(node.js).项目地址:https://gitcode.com/gh_mirrors/ne/nestjs-redis1.项目基础介绍NestJS-Redis是一个为NestJS框架设计的Redis模块,支持node-redis和ioredis。该项目提供
- Docker打包基础2
李星星BruceL
dockereureka容器
目录1调试Docker构建1.1调试构建过程2ImportError和ModuleNotFoundError2.1是否使用了正确的Python解释器2.1.1解决方案2.2是否成功激活了虚拟环境2.2.1解决方案2.3如果不是通过`pip`安装的,确保代码位置正确2.3.1解决方案2.4`python-m`要求代码位于当前工作目录中2.4.1解决方案3`dockerhistory`命令3.1镜像构
- 如何通过less在vue2中达到切换皮肤的目的
隐含
less前端css
先装lessnpminstalllessless-loader--save-dev然后将该loader添加到webpack的配置中去,例如:webpack.config.jsmodule.exports={module:{rules:[{test:/\.less$/i,use:[//compilesLesstoCSS'style-loader','css-loader','less-loader'
- 前端批量导入方式
蒜香拿铁
前端
webpack批量导入webpack中使用require.context实现自动导入constfiles=require.context('./modules',false,/\.ts$/);constmodules={};files.keys().forEach((key)=>{if(key==='./index.ts'){return;}modules[key.replace(/(\.\/|\
- React(10)
一路向前的月光
react.js前端前端框架
项目实践--创建项目在store的modules中创建相关的子仓库暴露到仓库index文件中导入creatSlice和axios创建仓库和数据的异步修改方法//编写store//导入createSlice和axiosimport{createSlice}from"@reduxjs/toolkit";importaxiosfrom"axios";//创建sliceconstfoodsStore=cr
- python本地文件import/ from .. import总结
菜就多练@Jade
python
python本地文件import/from…import总结在Python中,从其他模块(文件)中导入类或函数时,有几种常用的方法。不同的导入方式适用于不同的文件夹结构,比如同级、上级、下级的文件或包。以下是import和from...import从本地导入文件的场景:1.基本概念import语句:直接导入整个模块(Python文件),使用模块名调用其中的类或函数。importmodule_nam
- pytest测试框架所需文件以及各自位置
Rhys..
pytest
在使用pytest进行测试时,正确组织项目结构和测试文件可以显著提高项目的可维护性和测试代码的可读性。以下是一个常见的项目结构,以及各文件的作用和位置建议:项目结构project_root/|--src/||--your_module.py#生产代码|--tests/||--test_your_module.py#测试文件||--conftest.py#配置及共享夹具|--setup.py#项目配
- AI算法成长练习第一篇——Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition代码复现
威少的书童
人工智能算法python机器学习深度学习
论文代码复现代码结构ArchitecturesAttnClassifier.pyimporttorch.nnasnnimporttorchimporttorch.nn.functionalasFimportnumpyasnpclassClassifier(nn.Module):def__init__(self,args,feat_dim,param_seam,train_weight_base=F
- 大模型工程化:面向生产环境的LLM系统架构设计
桂月二二
系统架构wpf
一、高性能推理引擎设计1.1层次化计算优化1.2编译时优化示例#使用MLIR实现计算图优化withmlir.Context()asctx:module=Module.parse("""func.func@main(%input:tensor)->tensor{%cst=arith.constantdense:tensor%0=linalg.matmulins(%input,%cst:tensor,
- ngx_http_core_root
若云止水
nginx
定义在src\http\ngx_http_core_module.cstaticchar*ngx_http_core_root(ngx_conf_t*cf,ngx_command_t*cmd,void*conf){ngx_http_core_loc_conf_t*clcf=conf;ngx_str_t*value;ngx_int_talias;ngx_uint_tn;ngx_http_script
- ngx_http_index_t
若云止水
http网络协议网络
定义在src\http\modules\ngx_http_index_module.ctypedefstruct{ngx_str_tname;ngx_array_t*lengths;ngx_array_t*values;}ngx_http_index_t;该结构体用于存储和解析index指令中单个索引文件的信息,支持静态文件名和动态文件名(含变量)name(文件名)lengths(动态长度计算代码
- Python--8
神经毒素
python开发语言
笔记:模块和包:模块和包的基本概念:模块(module):一个.py文件就是一个模块包(package):类似于一个文件夹,可以管理和保持很多模块注意:真正的包:__init__.py通过包和模块,我们就可以项目化的管理软件python中模块的导入问题:importxxx#直接导入需要的模块或者包importxxx.xxx.xxx.xx#如果存在多层,可以这样层层导入importxxxasalia
- 在 Dojo 框架中define、declare 和 require的区别
lzfshub
java前端linux
0.dojo库引入在Dojo框架中,define、declare和require是三个重要的概念,它们在模块化和类声明中扮演不同的角色。以下将详细介绍它们的功能、区别及使用场景:1.define定义:define用于定义一个模块(module),它是Dojo模块化开发的核心方法。用途:创建独立的代码块,便于管理和复用。声明模块的依赖关系,通过回调函数实现模块间的交互。支持异步加载,优化页面加载性能
- commitlint的使用
码路老默007
工作javascript
第一步下载依赖npmi@commitlint/config-conventional@commitlint/cli-D第二步配置文件在项目的根目录下新建一个commitlint.config.js,这里边会把一个规则加上module.exports={extends:['@commitlint/config-conventional']};第三步使用commitlint检查提交信息错误gitcom
- 解决ModuleNotFoundError: No module named ‘scipy‘
Love向日葵的兮兮子
code错误解决办法pythonscipypipconda
运行程序出现如下错误:这是环境中没有安装scipy包,可以使用pip或者conda命令进行安装#pip安装pipinstallscipy#conda安装condainstallscipy#我一般使用pip镜像安装,更迅速pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplescipy出现如下输出表示安装成功!!!
- 【解决】ModuleNotFoundError: No module named ‘scipy‘
neter.asia
人工智能python
问题描述:今天运行python程序结果报了一个小小错误:ModuleNotFoundError:Nomodulenamed'scipy'分析原因:`ModuleNotFoundError:Nomodulenamed'scipy'`表明你的Python环境中缺少了名为`scipy`的模块,`scipy`是科学计算库,包含了许多数学、科学和工程计算的功能。解决:解决就很简单只要安装上就可以了pipin
- 【不降级的解决方案】ModuleNotFoundError: No module named ‘numpy.testing.decorators‘
link_in_csdn
python机器学习数据分析开发语言
之前发现代码报错,出现这个提示,第一反应是在百度和csdn上找,没想到找了一整圈,都在建议我用降级numpy的方法来解决pipinstallnumpy==1.17.0注:当前代码因为包的版本出现问题时,除非在实现逻辑上新包引入了恶性bug(且包的维护者停止了更新或者无力解决),否则极其不推荐降级包;大多数因为升级了包的版本而让原先代码报错的原因,都是因为新的包里面对调用方法、命名空间这类顶层进行了
- 【已解决】ModuleNotFoundError: No module named ‘scipy‘
鳗小鱼
Bugs(程序报错)前端javascript服务器程序员创富计算机视觉人工智能自然语言处理
问题描述今天遇到这样一个问题:ModuleNotFoundError:Nomodulenamed'scipy'问题的具体描述为:Traceback(mostrecentcalllast):File"/media/visionx/monica/newproject/globetrotter/main.py",line20,infromtrainerimportTrainerFile"/media/v
- 【YOLO】X-AnyLabeling 半自动标注
Abaaba+
YOLO
【YOLO】X-AnyLabeling半自动标注前言整体思路模型转换修改模型YAML文件导入自定义模型常见错误export导出错误AttributeError:module'numpy'hasnoattribute'typeDict'ONNX:exportfailure:UnsupportedONNXopsetversion:13X-AnyLabeling加载自定义模型报错前言本文介绍如何使用X-
- 【装饰器】【python】【@wraps详解】装饰器核心问题:元数据丢失解决,以及原理
患得患失949
面试考题专栏(前后端)python知识点复习python开发语言
Python装饰器中@wraps详解一、装饰器核心问题:元数据丢失(一)元数据的重要性每个Python函数都自带元数据属性,如:__name__:函数名称__doc__:文档字符串__module__:所属模块__annotations__:参数类型注解这些元数据是代码自描述性的核心,对调试、文档生成和IDE智能提示至关重要。(二)问题复现实验defsimple_decorator(func):d
- npm install 详解
2401_89793006
前端npm前端node.js
npminstall详解npminstall是Node.js包管理工具npm中最常用的命令之一。它用于安装项目所需的依赖包,并可以针对不同的场景提供多种选项和参数。以下是对npminstall的详细解析:基本用法1.安装单个包在当前项目的node_modules文件夹中安装指定的包,并将其添加到package.json的dependencies部分。npminstallpackage-name示例
- 手搓全自动文章多平台发布系统:4、脚本方式加载不同的站点
PyAIGCMaster
自动化操作操作收费专栏python开发语言
前面,我们已经可以方便的读取站点,并完成了相关浏览器的测试,下面的重点是传入一个数字,让通过这个数字自动打开网页。然后我们会根据情况,进行是否已经登录账号的判断。main.py的代码如下:importsysfromPyQt6.QtWidgetsimportQApplicationfrommodules.ui_componentsimportTableManager#导入界面类if__name__=
- 技术解构麦萌短剧《命运旋涡》:从「时间序列的因果重构」到「对抗性干预的强化学习」
短剧萌
重构python机器学习
《命运旋涡》以「时间回溯」为技术内核,揭示了高维因果推理与对抗性干预的算法博弈。本文将通过机器学习视角,拆解这场时空防御战的底层逻辑。1.时间序列重构:循环神经网络中的记忆觉醒许晴(Agent_Xu)的重生可建模为时间序列的对抗性重采样:pythonclassTimeLoop(nn.Module):def__init__(self,init_step=24):#初始化至求婚前24小时的关键时间窗s
- ModuleNotFoundError: No module named ‘matplotlib‘问题解决过程记录
tankeven
python学习matplotlib
1.编写了一句python代码:importmatplotlib.pyplotasplt在windows的cmd下运行的时候报错如下:Traceback(mostrecentcalllast):File"D:\codePy\count.py",line4,inimportmatplotlib.pyplotaspltModuleNotFoundError:Nomodulenamed'matplotl
- DeepSeek大模型后期维护全流程解析:如何保障AI系统持续高效运行?
恶霸不委屈
deepseek运维
作为国产AI大模型领域的领军者,DeepSeek的后期维护体系堪称行业标杆。本文将深度拆解其全链路维护流程,揭秘智能系统持续优化的核心技术方案。一、智能监控体系搭建(7×24小时护航)#示例:基于Prometheus的指标监控配置-targets:['model_servers:9090']metrics_path:'/metrics'params:module:[deepseek_core]re
- 深度学习5 神经网络、参数初始化
今天又是学习
深度学习人工智能
一、模型保存与加载1、序列化方式保存方式:torch.save(model,"model.pkl")打开方式:model=torch.load("model.pkl",map_location="cpu")importtorchimporttorch.nnasnnclassMyModle(nn.Module):def__init__(self,input_size,output_size):su
- python创建一个工程_python构建一个项目
weixin_39975486
python创建一个工程
二、实验步骤2.1实验准备我们的实验项目名为factorial。$mkdirfactorial$cdfactorial/2.2主代码我们给将要创建的Python模块取名为myfact,因此我们下一步创建myfact目录。$mkdirmyfact$cdmyfact/主代码将在fact.py文件里面。"myfactmodule"deffactorial(num):"""返回给定数字的阶乘值:argnu
- LeetCode[Math] - #66 Plus One
Cwind
javaLeetCode题解AlgorithmMath
原题链接:#66 Plus One
要求:
给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。
注意:
1. 数字的较高位存在数组的头上,即num1表示数字1239
2. 每一位(数组中的每个元素)的取值范围为0~9
难度:简单
分析:
题目比较简单,只须从数组
- JQuery中$.ajax()方法参数详解
AILIKES
JavaScriptjsonpjqueryAjaxjson
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局
- JConsole & JVisualVM远程监视Webphere服务器JVM
Kai_Ge
JVisualVMJConsoleWebphere
JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。
使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。
首先我们看WAS服务器端的配置.
1、登录was控制台https://10.4.119.18
- 自定义annotation
120153216
annotation
Java annotation 自定义注释@interface的用法 一、什么是注释
说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源
- CentOS 5/6.X 使用 EPEL YUM源
2002wmj
centos
CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#
- 在SQLSERVER中查找缺失和无用的索引SQL
357029540
SQL Server
--缺失的索引
SELECT avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,
last_user_seek ,
- Spring3 MVC 笔记(二) —json+rest优化
7454103
Spring3 MVC
接上次的 spring mvc 注解的一些详细信息!
其实也是一些个人的学习笔记 呵呵!
- 替换“\”的时候报错Unexpected internal error near index 1 \ ^
adminjun
java“\替换”
发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常
public class Main {
/*
- POJ 1035 Spell checker(哈希表)
aijuans
暴力求解--哈希表
/*
题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词
要求按照输入时候的排名输出
题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重
*/
#include <iostream>
//#define
using namespace std;
const int HASH =
- 通过原型实现javascript Array的去重、最大值和最小值
ayaoxinchao
JavaScriptarrayprototype
用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。
实现代码如下:
<script type="text/javascript">
Array.prototype.unique = function() {
var a = {};
var le
- UIWebView实现https双向认证请求
bewithme
UIWebViewhttpsObjective-C
什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求
中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知
- NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
bijian1013
redis数据库NoSQL
3.事务处理
Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中
- 各数据库分页sql备忘
bingyingao
oraclesql分页
ORACLE
下面这个效率很低
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20;
下面这个效率很高
SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_
- 【Scala七】Scala核心一:函数
bit1129
scala
1. 如果函数体只有一行代码,则可以不用写{},比如
def print(x: Int) = println(x)
一行上的多条语句用分号隔开,则只有第一句属于方法体,例如
def printWithValue(x: Int) : String= println(x); "ABC"
上面的代码报错,因为,printWithValue的方法
- 了解GHC的factorial编译过程
bookjovi
haskell
GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。
关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类
- Java-Collections Framework学习与总结-LinkedHashMap
BrokenDreams
LinkedHashMap
前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。
- 读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory
bylijinnan
abstract
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* Abstract Factory Pattern
* 抽象工厂模式的目的是:
* 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇”
* 这些接口是相关或者相依赖的
- 压暗面部高光
cherishLC
PS
方法一、压暗高光&重新着色
当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。
下面讲一下我今天处理高光区域的心得:
皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。
处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。
如果想简化步骤,可以只进行着色(参看下面的步骤1
- Java VisualVM监控远程JVM
crabdave
visualvm
Java VisualVM监控远程JVM
JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面
通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件 (我这里远程机器是linux).
- Saiku去掉登录模块
daizj
saiku登录olapBI
1、修改applicationContext-saiku-webapp.xml
<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern=&qu
- 浅析 Flex中的Focus
dsjt
htmlFlexFlash
关键字:focus、 setFocus、 IFocusManager、KeyboardEvent
焦点、设置焦点、获得焦点、键盘事件
一、无焦点的困扰——组件监听不到键盘事件
原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸
- Yii全局函数使用
dcj3sjt126com
yii
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址)
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在
- 设计模式之单例模式二(解决无序写入的问题)
come_for_dream
单例模式volatile乱序执行双重检验锁
在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该
- 程序员从初级到高级的蜕变
gcq511120594
框架工作PHPandroidhtml5
软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。
我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。
现在我们把淫浸代码时间超过3年的开发人员称为
- Reverse Linked List
hcx2013
list
Reverse a singly linked list.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
p
- Spring4.1新特性——数据库集成测试
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- C# Ajax上传图片同时生成微缩图(附Demo)
liyonghui160com
1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)
2.C#位图处理 System.Drawing。
3.最新demo支持IE7,IE8,Fir
- Java list三种遍历方法性能比较
pda158
java
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下:
package com.hisense.tiger.list;
import java.util.ArrayList;
import java.util.Iterator;
- 300个涵盖IT各方面的免费资源(上)——商业与市场篇
shoothao
seo商业与市场IT资源免费资源
A.网站模板+logo+服务器主机+发票生成
HTML5 UP:响应式的HTML5和CSS3网站模板。
Bootswatch:免费的Bootstrap主题。
Templated:收集了845个免费的CSS和HTML5网站模板。
Wordpress.org|Wordpress.com:可免费创建你的新网站。
Strikingly:关注领域中免费无限的移动优
- localStorage、sessionStorage
uule
localStorage
W3School 例子
HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不