1.oppo手机nfc怎么读身份证?
2.MySQL源码阅读4-do_command函数/功能类命令
3.从Less源码阅读到编写自己的刷阅Less变量替换实现动态替换主题功能
oppo手机nfc怎么读身份证?
不可以读取身份证知识补充::
NFC是Near Field Communication的简称,中文意思是源码近场通信,又称近距离无线通信,刷阅是源码一种短距离的高频无线通信技术,允许电子设备之间进行非接触式点对点数据传输(在十厘米内)交换数据(百事网)。刷阅这个技术由免接触式射频识别(RFID)演变而来,源码净负债公式源码并向下兼容RFID,刷阅最早由Sony和Philips开发成功,源码主要用于手机等手持设备中提供M2M(Machineto Machine)的刷阅通信。由于近场通讯具有天然的源码安全性,因此,刷阅NFC技术被认为在手机支付等领域具有很大的源码应用前景。
MySQL源码阅读4-do_command函数/功能类命令
do_command函数在MySQL的刷阅模板源码线程循环中执行,分为读取命令和分发执行命令两个主要步骤。源码
在读取命令阶段,刷阅首先设置读取超时(my_net_set_read_timeout),通过vio(Virtual I/O)接口从连接中读取数据。读取时,先解析包头,然后根据包头大小读取数据,同时检查是否超过最大包限制。若数据被压缩,使用zstd_uncompress或zlib_uncompress解压。解析数据并校验,将结果存储到thd对象中。gaex源码
执行命令阶段,依据获取到的命令执行逻辑,分配内存给String对象。通过dispatch_command函数,进入switch...case...结构,执行不同命令的特定逻辑。功能类命令包括初始化数据库(COM_INIT_DB)、注册从节点(COM_REGISTER_SLAVE)、重置连接(COM_RESET_CONNECTION)、克隆插件(COM_CLONE)、修改用户(COM_CHANGE_USER)等。其他类如数据操作、immwa源码未实现命令则在后续阅读。
以功能类命令为例,COM_INIT_DB用于改变当前连接的默认数据库。COM_REGISTER_SLAVE则在master节点上注册从节点,启动从节点与master节点的同步。COM_RESET_CONNECTION重置连接,但不创建新连接或更新授权。COM_CLONE命令用于克隆远程插件到本地,并确保一致性。COM_CHANGE_USER允许修改当前连接的用户,并重置连接。
具体操作包括解析请求包、digrice源码验证、更新thd信息、保存用户连接信息、证书验证、检查密码有效期、限制最大连接数、更新schema属性等。COM_QUIT命令用于清除数据并退出循环。COM_BINLOG_DUMP_GTID和COM_BINLOG_DUMP用于请求发送binlog数据流,而COM_REFRESH命令用于刷新缓存、权限、日志、表、连接主机信息等数据。
在COM_PROCESS_INFO命令中获取进程处理信息,COM_SET_OPTION设置连接属性,COM_DEBUG触发打印调试信息,而COM_PROCESS_KILL用于终止连接。最后,检查是否具有RELOAD_ACL权限并加载数据。
本文总结了do_command函数的命令读取和执行流程,详细介绍了功能类命令的执行情况,为理解MySQL核心工作原理提供了深入洞察。
从Less源码阅读到编写自己的Less变量替换实现动态替换主题功能
尽管过期建议转向unocss,但作者分享了自定义Less变量替换实现动态主题功能的曲折过程。起初尝试了antd-theme-webpack-plugin和github示例,但体验不佳。作者决定从头开始,探索Less自身的解析机制。
首先,作者考虑遍历Less文件,筛选需要修改的样式,试图模仿antd-theme-generator的做法,但发现过于复杂。然后转向Less自身的解析树结构,期待通过lessc或less-node中的parse函数来实现。然而,直接运行lessc导致浏览器刷新问题,这促使作者转向less包内部的解析逻辑。
在深入研究less包后,作者发现了render函数,它能通过modifyVars进行变量替换。然而,直接使用render会将所有样式重新渲染,不符合需求。因此,作者追踪了parse函数中的root节点,发现它构建了整个Less语法树,由Ruleset和Declaration组成。通过分析和调试,作者构建了一个自定义的解析流程,包括shake(去除冗余样式)和transformTree(生成CSS)。
在解决了一些问题,如错误和性能问题后,作者最终实现了功能:通过前端请求动态更改Less变量,生成定制的CSS。这个功能适合对请求时间要求不高的开发环境,便于实时样式调整。尽管过程中遇到挑战和bug,但作者还是完成了初步的成果,包括一个包装了主要功能的包和express中间件,方便前端使用。
值得注意的是,作者发现antd的shaking功能可能存在未被充分利用的less语法,因此在实际使用中选择了简化,仅在自定义样式上实现了动态替换。未来可能还会进行优化和调整。