JavaScript
一、JavaScript 简介JavaScript 由 Brendan Eich 于 1995 年在 Netscape 用 10 天写成(这是它早期混乱设计的根源)。后由 ECMA 标准化为 ECMAScript(ES),目前主流是 ES2015 (ES6) 之后的版本。 它的运行环境: 浏览器:操作 DOM、发请求、做动画 Node.js:服务端、CLI、构建工具 Electron:桌面应用(VSCode、Discord) React Native / Hermes:移动端 Deno / Bun:新一代 JS 运行时 二、核心特性类型与变量12345678910111213// 7 种原始类型 + Objecttypeof 42 // "number"typeof "hi" // "string"typeof true // "boolean"typeof undefined // "undefin...
jQuery
一、jQuery 的历史地位jQuery 由 John Resig 于 2006 年发布。它在那个浏览器兼容性地狱(IE6/7/8 时代)里做了一件改变行业的事: 用统一 API 抹平浏览器差异 链式调用让 DOM 操作变优雅 AJAX 一行代码搞定($.ajax) 选择器引擎 Sizzle 是 CSS3 选择器规范的事实参考 巅峰时期,全球 80%+ 网站都引了 jQuery,是 Web 开发史上最成功的开源库之一。 现在还需要它吗?新项目不需要。但维护老 PHP/Java 后台、Bootstrap 3/4 模板、WordPress 插件,仍然要会。 二、为什么现在不推荐新项目用 问题 说明 DOM API 已经够用 querySelector、fetch、classList 原生支持 响应式 UI 是大势 React/Vue 数据驱动,jQuery 命令式过时 打包体积 30 KB+ 仅为了几个工具函数不划算 大型项目难维护 满屏 $(...) 选择器,重构成本高 生态停滞 插件更新慢,与现...
PHP内置系统函数
系统函数 意义 备注 function_exists 系统或自定义函数 是否存在 class_exists 类是否存在 method_exists 类方法是否定义 property_exists 类属性是否定义 empty 类、变量、元素等是否为空
Linux基础
参考 命令 释义 shutdown -h now 关机 shutdown -r now 重启 uname -a 查看系统内核信息 cat /proc/version 查看系统内核版本 env 查看当前用户的环境变量 cat /proc/cpuinfo 查看系统内存信息 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 查看有几个逻辑CPU及型号 cat /proc/cpuinfo | grep physical | uniq -c 查看有几颗CPU,每颗分别是几核 getconf LONG_BIT 查看当前CPU运行在32bit cat /proc/cpuinfo | grep flags | grep ‘ lm ’ | wc -l 结果大于0,说明支持64bit ln -s /usr/local/jdk1.8 jdk 建立软连接 rpm ...
索引下推
MySQL 5.6引入了索引下推优化。默认开启,使用SET optimizer_switch = ‘index_condition_pushdown=off’;可以将其关闭。 有了索引下推优化,可以在减少回表次数 在InnoDB中只针对二级索引有效 官方文档中给的例子和解释如下: 在 people_table中有一个二级索引(zipcode,lastname,firstname),查询是SELECT * FROM people WHERE zipcode=’95054′ AND lastname LIKE ‘%etrunia%’ AND address LIKE ‘%Main Street%’; 如果没有使用索引下推技术,则MySQL会通过zipcode=’95054’从存储引擎中查询对应的数据,返回到MySQL服务端,然后MySQL服务端基于lastname LIKE ‘%etrunia%’ and address LIKE ‘%Main Street%’来判断数据是否符合条件 如果使用了索引下推技术,则MYSQL首先会返回符合zi...
ThinkPHP
一、ThinkPHP 简介ThinkPHP 由顶想科技维护,2006 年首发,至今主流版本 TP6 / TP8。它在国内 PHP 项目里占有率极高,原因很现实: 文档全中文,社区活跃,遇到问题搜得到 约定优于配置,新人一上手能跑业务 生态完整:ORM、模板引擎、验证器、命令行、多应用、微服务套件齐全 学习成本低:CRUD 后台一两天就能搭起来 不适合极致性能场景(用 Hyperf / EasySwoole),但做后台、内部系统、中小型 SaaS 性价比极高。 二、目录结构(TP6)123456789101112├── app/ # 应用目录│ ├── controller/ # 控制器│ ├── model/ # 模型│ ├── middleware/ # 中间件│ └── view/ # 视图├── config/ # 配置├── extend/ # 扩展类库├── public...
Yaf
一、Yaf 是什么Yaf = Yet Another Framework,作者是 Rasmus Lerdorf 的同事、PHP 核心开发者鸟哥(Xinchen Hui / Laruence)。 和其他 PHP 框架最大的不同:Yaf 是 PHP 扩展(C 写的 .so),不是 Composer 包。 框架自身不被 PHP 解释执行 → 启动 0 开销 常驻在 PHP 进程内 → 没有 autoload 成本 性能在 PHP-FPM 模式下比 Laravel/TP 快一个数量级 代价: 学习资料少(黄金时期是 2013-2017) 生态弱(没有 Eloquent 这种 ORM,要自己拼) 调试不便(C 层面问题) 适合:对性能敏感、团队 PHP 功底强、不需要花哨 ORM 的中型项目。 二、安装12345678# pecl 安装pecl install yaf# php.iniextension=yaf.soyaf.environ=productyaf.use_namespace=1yaf.use_spl_autoload=0 验证: 1p...
Yii2
一、Yii2 简介Yii 取自「Yes It Is」—— 强调”快”。Yii2 在国内外都有稳定用户群,特点: Active Record + Query Builder 双模式 ORM,比 Laravel Eloquent 更灵活 Gii 代码生成器:图形化生成 Model / CRUD / 模块,5 分钟出一套后台 内置 RBAC:角色权限管理开箱即用 Asset Bundle:前端资源打包/版本管理(早于 webpack 时代的解决方案) 两套骨架:Basic(小项目)和 Advanced(前后台分离) 性能在传统 PHP 框架里属于第一梯队,仅次于 Yaf/Phalcon 这类 C 扩展。 二、安装123456# Basic 模板composer create-project --prefer-dist yiisoft/yii2-app-basic basic# Advanced 模板(前后台分离)composer create-project --prefer-dist yiisoft/yii2-app-advanced a...
导入&导出优选CSV格式的理由
CSV,comma-separated values 逗号分隔值,通常被用于在使用纯文本的系统之间,交换表格类型的数据。 CSV是一种基于行的文件格式。也就是说,此类文件中的每一行都对应到数据表中的具体某一行。通常,CSV文件里包含有一个标题行,该标题行提供了数据的列名。如果没有标题行的话,该文件将被视为已部分完成了结构化工作。 单个CSV文件往往无法显示层次化的结构、或数据关系。而具体的数据连接关系往往需要通常多个CSV文件进行组织。各种外键(Foreign key)一般被存储在一个或多个文件的多个列中。不过这些文件之间的链接并非由其格式本身来表示。此外,由于并未完全标准化,因此在CSV格式文件中,您可以使用逗号以外的界定符,例如:制表符(tabs)或空格。 **CSV文件的另一个特性是:**只有处于未压缩的原始文件状态、或是运用诸如bzip2或lzo之类的解压缩工具时,CSV文件才能够被拆分(注意:lzo需要进行索引之后,方可执行拆分)。 优点: CSV易于人工阅读,也易于手动编辑。 CSV提供了一种简单明了的信息模式(schema)。 几乎所有现有的应用程序都能够...
MySQL的三种日志
redo log日志也叫做WAL技术(Write- Ahead Logging),他是一种先写日志,并更新内存,最后再更新磁盘的技术,为了就是减少sql执行期间的数据库io操作,并且更新磁盘往往是在Mysql比较闲的时候,这样就大大减轻了Mysql的压力。 redo log是固定大小,是物理日志,属于InnoDB引擎的,并且写redo log是环状写日志的形式: 如上图所示:若是四组的redo log文件,一组为1G的大小,那么四组就是4G的大小,其中write pos是记录当前的位置,有数据写入当前位置,那么write pos就会边写入边往后移。 check point记录擦除的位置,因为redo log是固定大小,所以当redo log满的时候,也就是write pos追上check point的时候,需要清除redo log的部分数据,清除的数据会被持久化到磁盘中,然后将check point向前移动。 redo log日志实现了即使在数据库出现异常宕机的时候,重启后之前的记录也不会丢失,这就是crash-safe能力。 binlog称为归档日志,是逻辑上的日志,它属于M...




