- JavaScript-定时器setTimeout用法
s甜甜的学习之旅
前端javascript前端开发语言
定时器setTimeout学习链接定时器学习链接定时器(serTimeout())的用法(进阶)setTimeout用法定时器通常用在页面刷新,延迟执行
- vue基本语法
多啦爱梦的梦想
vue
VUEday01异步函数和回调函数何为异步函数:不会马上执行,需要特定的时机执行的函数,由于是异步的,不会阻塞主线程代码的执行异步函数有哪些:ajax请求,定时器,延时器,文件读取何为回调函数:把一个函数当作参数传递,将来特定的时机调用,这个函数就是回调函数,一般异步操作,都会用到回调函数例如:setTimeout(()=>{console.log(2)},1000)==>定时器里面的打印2不会立
- 标题:深入理解 JavaScript 中的定时器
小刘|
javascript前端开发语言
目录一、定时器的基本概念1.setInterval2.setTimeout二、代码示例分析一、定时器的基本概念在JavaScript中,定时器是一种用于在特定时间间隔后执行代码或者重复执行代码的机制。主要包含两种类型的定时器:setInterval和setTimeout。1.setIntervalsetInterval()是一个周期函数,它会在指定的时间间隔后,重复执行指定的函数。例如:vari=
- uniapp小程序返回上一页并刷新上一页数据
狗狗狗狗亮
uniapp微信小程序
当前页letinsertResult=awaitInsertAbnomalRecordDetail(recordDetailParams)if(insertResult.statusCode==200){this.showToast('提交成功')setTimeout(()=>{letpages=getCurrentPages()//获取页面栈letprePage=pages[pages.leng
- vue2基本指令
老实摸鱼的李大爷
vue2vue.jsjavascript前端
v-bind语法糖:‘:’用于标签的属性,给予属性绑定动态的值constvm=newVue({el:"#app",data:{imgUrl:"https://tse4-mm.cn.bing.net/th/id/OIP-C.82-NjML3lD7df9CJzESycgHaE8?rs=1&pid=ImgDetMain"}});setTimeout(()=>{vm.imgUrl="https://tse
- 回调地狱--promise与async+await
蓝莓味柯基
es6javascriptes6
一、回调地狱首先了解两个概念,什么是回调函数?什么是异步任务?1.1回调函数当一个函数作为参数传入另一个参数中,并且它不会立即执行,只有当满足一定条件后该函数才可以执行,这种函数就称为回调函数。(它是作为参数传递给另一个函数的函数)我们熟悉的定时器和Ajax中就存在有回调函数:定时器setTimeout:setTimeout(function(){//function(){console.log(
- vue Element-ui el-table合计行样式自定义、不换行显示
一撇一画
笔记vue.jshtmljavascript
本项目由于合计汇总数字太多太长,又不能改变原width的情况下,就自定义样式超出点点点了,又要鼠标悬浮看全。js(设置‘title’)配合css(不换行)watch:{//loading为v-loadingloading(bool){!bool&&setTimeout(()=>{constnodeList=this.footerTr||[]nodeList.forEach<
- 前端Vue + qrcode实现二维码生成
小倪有点菜
vue.js前端javascript
后端接口会返回一串由数字和英文组合的字符串getQRInviteCode(){//清除上一次的二维码if(this.$refs.qrcode){this.$refs.qrcode.innerHTML='';//清除二维码方法}//生成二维码(这里有个坑,一定要在new关键字前面用等于号,赋给一个变量,否则vue运行会报错)qrcode是HTML中的显示二维码的divsetTimeout(()=>{
- <el-table>组件show-summary合计行合并方法
weixin_52137539
前端javascriptvue.js
elementtable组件中通过show-summary生成的合并行无法通过span-method方式实现合并行;watch:{ tableData:{ immediate:true, handler(){ setTimeout(()=>{ consttds=document.querySelectorAll('#table.el-table__footer
- websocket 如果重连还是失败的处理方法
小纯洁w
websocket网络协议网络
在Websocket重连失败后切换到HTTP轮询,可以采用以下步骤执行:定义HTTP轮询方法:根据你的应用需求,先定义一个专门执行HTTP轮询的方法。这通常包括一个定期执行HTTP请求的setInterval或者setTimeout。例如:functionhttpPolling(){setInterval(function(){fetch('/server-endpoint').then(resp
- JavaScript-防抖和节流
好哈优学编程
javascript开发语言
防抖(debounce):如果一个函数持续地触发,那么只在它停止触发的一段时间后才执行,如果在这段时间内又开始持续触发,则重新计算时间。防抖函数的实现如下:functiondebounce(func,wait){lettimeout;returnfunction(){clearTimeout(timeout);timeout=setTimeout(()=>{func.apply(this,argu
- console.log、setTimeout和Promise的输出顺序
Now?!
javascript
先看题目:你们可以先自己想想,再看答案console.log(1)setTimeout(()=>{ console.log(2) Promise.resolve().then(()=>{ console.log(3) })});console.log(4)newPromise((resolve,reject)=>{ console.log(5) resolve()}).then(()=>{ co
- React State 原理理解
YuLong~W
Reactreact.jsjavascriptstateuseState前端
文章目录类组件statesetState原理揭秘函数组件state总结问题:setState到底是同步还是异步的?如果对React底层有一定了解,可以回答出batchUpdate批量更新概念,以及批量更新被打破的条件。答案:有时是同步,有时是异步。在合成事件和生命周期函数里是异步的在原生事件和setTimeout、promise里是同步的造成setState的异步并不是由内部的异步代码引起的,在本
- JavaScript防抖函数
喂!大掌柜
javascript开发语言ecmascript
在JavaScript中,你可以使用函数闭包来创建一个防抖函数。下面是一个简单的实现示例:functiondebounce(func,delay){lettimeoutId;returnfunction(){clearTimeout(timeoutId);timeoutId=setTimeout(func,delay);};}使用这个防抖函数时,你需要将需要防抖的函数和延迟时间作为参数传递给deb
- 【JS】this 指向介绍(箭头函数)
阿昊在
ES6javascriptes6前端
目录全局环境下函数直接调用对象中的this对象内部方法的this指向调用这些方法的对象,原型链中this构造函数中thiscall&applybind方法DOM事件处理函数中的this&内联事件中的thissetTimeout&setInterval箭头函数中的this在普通函数中,this指向调用其所在函数的对象,而且是离谁近就是指向谁(此对于常规对象,原型链,getter&setter等都适用
- element-plus下拉框select-popup在组建中不显示问题
黄安树_
vue.js
在自定义modal中,使用element-plus的select,第一次总是不显示popup弹窗,查阅相关文档有说是权级问题,修改权级之后,确实可以显示,但是还是会有很多奇奇怪怪的bug!目前总结了两种方法,如下:方法1:使用select自带的apipopper-class,在操作时给popup的权级设置到最大constselectPopperShow=(e)=>{if(e){setTimeout
- react如何解决setTimeout获取不到最新数据问题
Misnice
Reactreact.jsjavascript前端
在React中,setTimeout可能会由于闭包的特性获取不到最新的数据,因为当setTimeout的回调函数被定义时,它捕获的是那个时刻的状态,如果状态更新了但setTimeout还没执行,那么回调函数内使用的状态值将不会是最新的。解决方案:1.使用最新的状态值通过使用React的useRefhook来持有最新的状态值,确保在setTimeout的回调函数中访问的状态是最新的。import{u
- sleep(1000)函数+parseInt
wyzqhhhh
前端javascript开发语言
sleep//意味着等待1000毫秒可以从promiseasyncawait角度实现functionsleep(ms){returnnewPromise(resolve=>{setTimeout(resolve,ms)})}asyncfunctionexample(){console.log("!");awaitsleep(1000);console.log("222")}example();在这
- 手写Promise.all
新时代农民工--小明
jsjavascript前端vue.js
有些面试官脑洞很大,非要让面试者手写一下Promise.all的实现代码,就很离谱算了,没有办法,谁让我是打工人,写吧。先准备两个函数用于测试所用。(完整代码在最后)functionfun1(){returnnewPromise((res,rej)=>{setTimeout(()=>{res(1)},1000);})}functionfun2(){returnnewPromise((res,rej
- elasticsearch 搜索怎么设置超时时间
老程序员刘飞
SearchRequestBuilderbuilder;builder.setTimeout(TimeValue.timeValueMillis(1));本意是想es查询超过1毫秒就返回超时,但测试发现与想象的不一样。即使耗时100+毫秒也不会超时。setTimeout方法是不可靠的,解释如下:Sadly,itisabestefforttimeout,itsnotbeingcheckedonall
- js 延迟执行sleep函数
学不会•
javascript前端vue.js
按钮exportdefault{data(){return{form:{}}},methods:{//延时执行sleep(delay){returnnewPromise((resolve,reject)=>{setTimeout(()=>{resolve()},delay)})},asyncbtn(){console.log("runtime")console.log(1)awaitthis.sl
- javascript的Bom
ggggyyyyy0928
javascript开发语言ecmascript
一、Bom的概念概念:浏览器模型,提供了与浏览器窗口交互的对象,核心对象是window二、window对象的常见事件1、页面加载事件当文档内容加载完执行该事件window.onload=function(){}2.调整窗口大小事件window.onresize=function(){}三、定时器window可以省略,毫秒数默认为01.setTimeout延时器:延迟多少时间执行vartimer1=
- vue3实现瀑布流布局组件
guizi0809
vue3vue.js前端javascript
先看效果图直接上代码utils.js//用于模拟接口请求exportconstgetRemoteData=(data='获取数据',time=2000)=>{returnnewPromise((resolve)=>{setTimeout(()=>{console.log(`模拟获取接口数据`,data)resolve(data)},time)})}//获取数组随机项exportconstgetRa
- [场景实现]:左侧目录树右侧内容联动
JingHiraeth
前端场景vue.js前端javascriptelementuielementplus
1、需求描述左侧是目录,部分目录项有子项,右侧是内容。当滑动右侧内容区域的时候,最上部分的内容对应的左侧目录项会有样式背景色区分。当点击左侧目录项的时候,右侧对应的内容会滚动到顶部。2、实现思路锚点来做对应。左侧目录树用的el-menu,用.el-menu-item.is-active来做样式区分。点击和滚动的冲突用setTimeout解决。该部分实现在弹窗上,用ref和watch。避免挂载时据i
- 防抖和节流 简介
crary,记忆
前端知识总结javascript开发语言ecmascript前端
防抖和节流都是用来控制函数执行频率的技术,可以用来提高性能和优化用户体验。简介:防抖(Debounce):防抖是指在一段时间内多次触发同一个函数时,只执行最后一次触发的函数。应用场景包括输入框搜索、滚动加载等需要控制频率的操作。在实现上,可以通过setTimeout和clearTimeout来实现防抖。functiondebounce(func,delay){lettimer;returnfunc
- ES6 async 同步异步操作
龚达耶
正如我之前的那篇关于Promise的介绍,async可以让你的异步操作变得更加简单。异步操作consttimeOut=function(num){returnnewPromise(function(resolve,reject){//进行异步操作setTimeout(()=>{resolve(num)},3000)});};constasyncF=asyncfunction(){constf1=a
- React setState同步还是异步
头像为自己开发微信小程序
react.js前端前端框架
React18setState是同步还是异步?_react18同步-CSDN博客React18之前或者React18使用了ReactDOM.render,setState在React调度流程中是异步更新,在原生事件和setTimeout中是同步更新。React18使用ReactDOM.createRoot,那么默认都是批量更新,也就是异步更新。useState无论如何都是批量更新。
- vue transition的延时播放
RCX明
vue
vue延迟播放1、显示的控制(利用setTimeout控制v-show)2、CSS的设置(可以使用transition+transition-delay控制,animation+animation-delay也可以但是初始就显示了)1、显示的控制(利用setTimeout控制v-show)这里利用了mounted()生命周期函数,实现页面自动播放bounce-inexportdefault{dat
- js中的事件执行顺序梳理
小王今天也要加油鸭~!
前端重要知识详解前端javascript
了解js的事件执行顺序,首先明白两组概念:同步任务/非耗时任务:指的是在主线程上排队执行的任务,只有前一个执行完毕才能执行后一个任务。异步任务/耗时任务:由js委托给宿主环境进行执行,执行完后会通知js主线程执行异步任务的回调函数。同时呢,异步任务又分为宏任务和微任务:宏任务:异步ajax请求、setTimeout、setInterval、文件操作、其他微任务:Promise.then、.catc
- [前端开发] HTML CSS JavaScript 深入学习 - 定时器
YuanDaima2048
前端学习基础概念htmlcssjavascripthtml5css3es6前端
HTML+CSS+JavaScript深入学习-定时器事件事件触发器事件处理程序定时器setTimeout()setInterval()取消定时器总结事件事件是Web开发中的重要概念,通过事件,用户可以与页面元素进行交互,触发相应的功能或效果。在HTML、CSS和JavaScript中,事件处理是实现交互的关键之一。概念指路常见的HTMLCSSJavaScript事件事件触发器事件触发器是指可以触
- 用MiddleGenIDE工具生成hibernate的POJO(根据数据表生成POJO类)
AdyZhang
POJOeclipseHibernateMiddleGenIDE
推荐:MiddlegenIDE插件, 是一个Eclipse 插件. 用它可以直接连接到数据库, 根据表按照一定的HIBERNATE规则作出BEAN和对应的XML ,用完后你可以手动删除它加载的JAR包和XML文件! 今天开始试着使用
- .9.png
Cb123456
android
“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png
智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。
我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边
- 算法的效率
天子之骄
算法效率复杂度最坏情况运行时间大O阶平均情况运行时间
算法的效率
效率是速度和空间消耗的度量。集中考虑程序的速度,也称运行时间或执行时间,用复杂度的阶(O)这一标准来衡量。空间的消耗或需求也可以用大O表示,而且它总是小于或等于时间需求。
以下是我的学习笔记:
1.求值与霍纳法则,即为秦九韶公式。
2.测定运行时间的最可靠方法是计数对运行时间有贡献的基本操作的执行次数。运行时间与这个计数成正比。
- java数据结构
何必如此
java数据结构
Java 数据结构
Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:
枚举(Enumeration)
位集合(BitSet)
向量(Vector)
栈(Stack)
字典(Dictionary)
哈希表(Hashtable)
属性(Properties)
以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collect
- MybatisHelloWorld
3213213333332132
//测试入口TestMyBatis
package com.base.helloworld.test;
import java.io.IOException;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibat
- Java|urlrewrite|URL重写|多个参数
7454103
javaxmlWeb工作
个人工作经验! 如有不当之处,敬请指点
1.0 web -info 目录下建立 urlrewrite.xml 文件 类似如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE u
- 达梦数据库+ibatis
darkranger
sqlmysqlibatisSQL Server
--插入数据方面
如果您需要数据库自增...
那么在插入的时候不需要指定自增列.
如果想自己指定ID列的值, 那么要设置
set identity_insert 数据库名.模式名.表名;
----然后插入数据;
example:
create table zhabei.test(
id bigint identity(1,1) primary key,
nam
- XML 解析 四种方式
aijuans
android
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法。
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object
- spring中配置文件占位符的使用
avords
1.类
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.o
- 前端工程化-公共模块的依赖和常用的工作流
bee1314
webpack
题记: 一个人的项目,还有工程化的问题嘛? 我们在推进模块化和组件化的过程中,肯定会不断的沉淀出我们项目的模块和组件。对于这些沉淀出的模块和组件怎么管理?另外怎么依赖也是个问题? 你真的想这样嘛? var BreadCrumb = require(‘../../../../uikit/breadcrumb’); //真心ugly。
- 上司说「看你每天准时下班就知道你工作量不饱和」,该如何回应?
bijian1013
项目管理沟通IT职业规划
问题:上司说「看你每天准时下班就知道你工作量不饱和」,如何回应
正常下班时间6点,只要是6点半前下班的,上司都认为没有加班。
Eno-Bea回答,注重感受,不一定是别人的
虽然我不知道你具体从事什么工作与职业,但是我大概猜测,你是从事一项不太容易出现阶段性成果的工作
- TortoiseSVN,过滤文件
征客丶
SVN
环境:
TortoiseSVN 1.8
配置:
在文件夹空白处右键
选择 TortoiseSVN -> Settings
在 Global ignote pattern 中添加要过滤的文件:
多类型用英文空格分开
*name : 过滤所有名称为 name 的文件或文件夹
*.name : 过滤所有后缀为 name 的文件或文件夹
--------
- 【Flume二】HDFS sink细说
bit1129
Flume
1. Flume配置
a1.sources=r1
a1.channels=c1
a1.sinks=k1
###Flume负责启动44444端口
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=44444
a1.sources.r1.chan
- The Eight Myths of Erlang Performance
bookjovi
erlang
erlang有一篇guide很有意思: http://www.erlang.org/doc/efficiency_guide
里面有个The Eight Myths of Erlang Performance: http://www.erlang.org/doc/efficiency_guide/myths.html
Myth: Funs are sl
- java多线程网络传输文件(非同步)-2008-08-17
ljy325
java多线程socket
利用 Socket 套接字进行面向连接通信的编程。客户端读取本地文件并发送;服务器接收文件并保存到本地文件系统中。
使用说明:请将TransferClient, TransferServer, TempFile三个类编译,他们的类包是FileServer.
客户端:
修改TransferClient: serPort, serIP, filePath, blockNum,的值来符合您机器的系
- 读《研磨设计模式》-代码笔记-模板方法模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
- 配置心得
chenyu19891124
配置
时间就这样不知不觉的走过了一个春夏秋冬,转眼间来公司已经一年了,感觉时间过的很快,时间老人总是这样不停走,从来没停歇过。
作为一名新手的配置管理员,刚开始真的是对配置管理是一点不懂,就只听说咱们公司配置主要是负责升级,而具体该怎么做却一点都不了解。经过老员工的一点点讲解,慢慢的对配置有了初步了解,对自己所在的岗位也慢慢的了解。
做了一年的配置管理给自总结下:
1.改变
从一个以前对配置毫无
- 对“带条件选择的并行汇聚路由问题”的再思考
comsci
算法工作软件测试嵌入式领域模型
2008年上半年,我在设计并开发基于”JWFD流程系统“的商业化改进型引擎的时候,由于采用了新的嵌入式公式模块而导致出现“带条件选择的并行汇聚路由问题”(请参考2009-02-27博文),当时对这个问题的解决办法是采用基于拓扑结构的处理思想,对汇聚点的实际前驱分支节点通过算法预测出来,然后进行处理,简单的说就是找到造成这个汇聚模型的分支起点,对这个起始分支节点实际走的路径数进行计算,然后把这个实际
- Oracle 10g 的clusterware 32位 下载地址
daizj
oracle
Oracle 10g 的clusterware 32位 下载地址
http://pan.baidu.com/share/link?shareid=531580&uk=421021908
http://pan.baidu.com/share/link?shareid=137223&uk=321552738
http://pan.baidu.com/share/l
- 非常好的介绍:Linux定时执行工具cron
dongwei_6688
linux
Linux经过十多年的发展,很多用户都很了解Linux了,这里介绍一下Linux下cron的理解,和大家讨论讨论。cron是一个Linux 定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下Linux定时执行工具cron的具体使用及简单介绍。
新增调度任务推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cr
- Yii assets目录生成及修改
dcj3sjt126com
yii
assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件,但是我们又希望将module单独出来,所以需要使用发布,即将一个目录下的文件复制一份到assets下面方便通过url访问。
assets设置对应的方法位置 \framework\web\CAssetManager.php
assets配置方法 在m
- mac工作软件推荐
dcj3sjt126com
mac
mac上的Terminal + bash + screen组合现在已经非常好用了,但是还是经不起iterm+zsh+tmux的冲击。在同事的强烈推荐下,趁着升级mac系统的机会,顺便也切换到iterm+zsh+tmux的环境下了。
我为什么要要iterm2
切换过来也是脑袋一热的冲动,我也调查过一些资料,看了下iterm的一些优点:
* 兼容性好,远程服务器 vi 什么的低版本能很好兼
- Memcached(三)、封装Memcached和Ehcache
frank1234
memcachedehcachespring ioc
本文对Ehcache和Memcached进行了简单的封装,这样对于客户端程序无需了解ehcache和memcached的差异,仅需要配置缓存的Provider类就可以在二者之间进行切换,Provider实现类通过Spring IoC注入。
cache.xml
<?xml version="1.0" encoding="UTF-8"?>
- Remove Duplicates from Sorted List II
hcx2013
remove
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,Given 1->2->3->3->4->4->5,
- Spring4新特性——注解、脚本、任务、MVC等其他特性改进
jinnianshilongnian
spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- MySQL安装文档
liyong0802
mysql
工作中用到的MySQL可能安装在两种操作系统中,即Windows系统和Linux系统。以Linux系统中情况居多。
安装在Windows系统时与其它Windows应用程序相同按照安装向导一直下一步就即,这里就不具体介绍,本文档只介绍Linux系统下MySQL的安装步骤。
Linux系统下安装MySQL分为三种:RPM包安装、二进制包安装和源码包安装。二
- 使用VS2010构建HotSpot工程
p2p2500
HotSpotOpenJDKVS2010
1. 下载OpenJDK7的源码:
http://download.java.net/openjdk/jdk7
http://download.java.net/openjdk/
2. 环境配置
▶
- Oracle实用功能之分组后列合并
seandeng888
oracle分组实用功能合并
1 实例解析
由于业务需求需要对表中的数据进行分组后进行合并的处理,鉴于Oracle10g没有现成的函数实现该功能,且该功能如若用JAVA代码实现会比较复杂,因此,特将SQL语言的实现方式分享出来,希望对大家有所帮助。如下:
表test 数据如下:
ID,SUBJECTCODE,DIMCODE,VALUE
1&nbs
- Java定时任务注解方式实现
tuoni
javaspringjvmxmljni
Spring 注解的定时任务,有如下两种方式:
第一种:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http
- 11大Java开源中文分词器的使用方法和分词效果对比
yangshangchuan
word分词器ansj分词器Stanford分词器FudanNLP分词器HanLP分词器
本文的目标有两个:
1、学会使用11大Java开源中文分词器
2、对比分析11大Java开源中文分词器的分词效果
本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断。
11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口:
/**
* 获取文本的所有分词结果, 对比