一 router.beforeEach简介常见用法使用 router.beforeEach 注册一个全局前置守卫:const router = createRouter({ ... })
router.beforeEach((to, from) => {
// ...
// 返回 false 以取消导航
return false
})当一个导航触发时,全局前置守卫按照创建顺序调
今晚我加的一个前端群里有人问了这样一个问题,下面这段代码在Chrome中运行:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
转载
2024-10-25 11:00:01
19阅读
最近因为项目的原因,开始研究log4cplus这个日志库。主要是把新版中增加的异步模式log用起来。异步log目前很少有人用,网上说明的资料比较少。看了很多源码,做了很多测试,走了些许弯路。因此打算把一点心得记录下来,为后面要用此功能的人增加一点参考资料。借此机会,正式开启我的技术博客之旅:)。 log4cplus通常有三种使用形式:stdout(打印到屏幕),文件日志和网络日志。最常用
转载
2024-04-09 09:13:41
146阅读
Lua语言从一开始就被设计为能与c/c++及其他常用语言开发的软件集成在一起使用的语言。Lua语言作为一门胶水语言,支持组件化的软件开发方式,通过整合已有的高级组件可以轻松构建新的应用。在软件中台化开发模型中,Lua势必会扮演十分重要的角色。当然,Lua还有其他特性和优点, Lua的运用场合也有其他,这里就不再赘述,接下来进入正题。1、Lua解析器学习Lua语言还是从helloworld开始。在L
转载
2024-06-29 20:34:52
77阅读
transition.lua主要是动作相关的操作。 --------------------------------
-- @module transition
--[[--
为图像创造效果
]]
local transition = {}
local ACTION_EASING = {}
ACTION_EASING["BACKIN"] = {
转载
2024-10-11 20:45:43
46阅读
同步调用 : 委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。 异步调用 :同步调用会阻塞线程,如果是要调用一项繁重的工作(如大量IO操作),可能会让程序停顿很长时间,造成糟糕的用户体验,这时候异步调用就很有必要了。异步调用不阻塞线程,而是把调用塞到线程池中,程序主线程或UI线程可以继续
转载
2024-04-15 22:53:32
98阅读
[code="lua"]local function f(a) local thread = coroutine.running() ngx.say("status:",coroutine.status(thread)) ngx.say("1") cld()end...
原创
2023-04-11 00:24:07
171阅读
手写内存泄漏检测组件 文章目录手写内存泄漏检测组件1、mtrace1.1、mtrace 函数1.2、设置日志生成路径1.3、编译源码1.4、运行分析1.5、定位源码位置 addr2line2、宏定义2.1、检测位置2.2、改进方案2.3、运行分析3、hook3.1、检测位置3.2、递归调用的问题3.3、运行分析4、__libc_malloc5、addr2line 的乱码问题 要想实现内存泄漏组件
转载
2024-09-06 10:22:02
85阅读
上个月末开源发布了1拖4脱机烧录:H7-TOOL开发工具史上超重大更新,1拖4脱机烧录全球开源发布 本周继续完善,向傻瓜式操作不断前进。这次升级主要是解决大家配置LUA烧写文件的痛点,做成了图形化配置。V1.21版APP程序:h7_tool_appH7-TOOL_STM32H7_App上位机升级至V0.5:H7-TOOL PC机软件H7-TOO
转载
2024-04-14 13:05:32
64阅读
也叫 协同式多线程。 一个协程在 Lua 中代表了一段独立的执行线程。 然而,与多线程系统中的线程的区别在于, 协程仅在显式调用一个让出(yield)函数时才挂起当前的执行。调用函数 coroutine.create 可创建一个协程。 其唯一的参数是该协程的主函数。create函数只负责新建一个协程并返回其句柄 (一个 thread 类型的对象); 而不会启动该协程。调用 corou
原创
2022-11-01 11:09:10
100阅读
什么是协同(coroutine)?Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正
原创
2017-09-01 17:50:59
1504阅读
在上文Lua coroutine 不一样的多线程编程思路 中想到coroutine的运行机制跟Java中的wait/notify很相似,所以写了一个简单程序比较一下。
源代码
Lua code
co = coroutine.create(function(loops)
for i = 1, loops do
coroutine.yield()
end
原创
2009-04-27 17:30:00
1537阅读
do --create coroutine table --coroutine state: suspended, running, dead, normal --when create the coroutine, thee statu
原创
2023-08-28 15:34:57
92阅读
协程简单理解为可以暂停的线程,但是同一时刻只有一个协程可以处于运行状态。
原创
2024-07-15 14:16:16
42阅读
全局变量(global variable)在Lua中定义全局变量非常简单,就是定义变量的时候,前面不要加上local。 这个神秘的全局变量,其实本质上也是一个table,它把我们创建的全局变量都保存到一个table里。 这个table的名字是:_G。gName = "globalVar"
print(gName)
print(_G.gName)
print(_G["gName"])
转载
2024-05-15 15:19:14
55阅读
Lua 协同程序(coroutine)什么是协同(coroutine)?Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行
转载
2024-04-10 17:41:25
44阅读
LUA协程的介绍lua 有一套非常高效的协程机制, 这一套实现非常轻量级, 虽然简单意味着高效, 然而它并不是真正意义上的对称式协程. lua中使用 coroutine.create 来创建一个协程, 使用 coroutine.resume 来执行协程。使用 coroutine.yield 来让出当前正在执行的协程. 通过这两个函数,你可以在两个协程之间相互传递参数, 直到协程执行完成.local
转载
2023-08-24 10:48:38
203阅读
LUA简介lua是一个小巧的脚本语言,LUA不适合作为独立开发应用程序的语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能一般数据库连接是层层递进的,但是这样做性能不高,但有了LUA之后,我们甚至不需要Java代码,直接从nginx连接数据库先从nginx获取数据,如果没有(nginx本身是有缓存的)再通过LUA连接到redis中获取数据,如果没有再通过LUA连接到mys
转载
2024-07-14 17:05:24
40阅读
应该尽量使用 local 变量而非 global 变量
。这是
Lua
初学者最容易犯的错误。global 变量实际上是放在一张全局的 table 里的。global 变量实际上是利用一个 string (变量名作 key) 去访问这个 table 。虽然
Lua5 的 table 效率很高
转载
2024-08-28 15:17:29
45阅读
今天和人讨论了一下CPS变形为闭包回调(典型为C#和JS),以及Lua这种具有真正堆栈,可以yield和resume的coroutine,两种以同步的形式写异步处理逻辑的解决方案的优缺点。之后生出疑问,这两种做法,到底哪一种会更消耗。我自己的判断是,在一次调用只有一两个异步调用中断时(即有2次回调,或者2次yield),闭包回调的方式性能更好,因为coroutine的方式需要创建一个具有完全堆栈的
转载
2024-04-04 20:25:12
114阅读