最新文章 更多
...
JavaScript实现滑动验证码

滑动验证码(也叫做滑动拼图验证码)是一种用户交互形式的验证码,通常用于网页或移动应用的登录、注册或敏感操作。其 […]

43 2024/04/19

...
A-frame 实现海浪效果

A-Frame基于HTML,容易上手。但是A-Frame不仅仅是一个3D场景渲染引擎或者一个标记语言。其核心思 […]

232 2024/04/03

...
Uniapp 实现定时器管理器

在开发一个包含多个任务和页面的 UniApp 应用时,需要定时器来执行不同的任务,每个页面执行一个定时器的话, […]

120 2024/03/30

...
PHP合成图片

php使用GD库完成海报上添加二维码

315 2024/01/19

...
二进制十六进制对照表

二进制 八进制 十进制 十六进制 0000 0 0 0 0001 1 1 1 0010 2 2 2 0011 […]

281 2023/11/29

...
PHP的反射(Reflection)

PHP的反射(Reflection)是PHP的一个内置特性,它提供了一组类和接口,用于检查和操作类、对象、方法和属性等。通过反射,您可以获取类的信息、检查方法的参数和返回类型、创建和调用方法、获取和设置属性值等。

325 2023/10/19

...
依赖注入(DI)和控制反转(IoC)

依赖注入(Dependency Injection,简称DI)是一种设计模式,它允许我们在代码中去除硬编码的依赖关系,并使这些关系变得更加灵活和可配置。依赖注入通过将依赖关系(例如对象、变量或服务等)作为参数传递给需要它们的对象,从而实现解耦和可测试性。 控制反转(Inversion of Control,简称IoC)是一种设计原则,它将控制权从代码本身转移到外部容器中,该容器负责创建和管理对象及其依赖关系。控制反转通过将对象的创建和管理交给外部容器来完成,从而减少了类之间的耦合,并使代码更加可维护和可扩展。

484 2023/09/26

...
虚拟滚动实现页面百万数据滚动

1.概念 虚拟滚动是一种优化长列表性能的技术,它通过按需渲染的方式,只渲染可见部分的列表项,而不是渲染整个列表 […]

448 2023/09/11

...
JavaScript中async和await的应用

async和await是ES7中引入的关键字,用于简化Promise操作,提高Promise代码的可读性和理解性。它们结合使用可以使得异步调用不返回Promise对象,而直接把then回调函数的第一个形参result给返回出来,使代码更节俭,开发效率更高。

547 2023/09/09

...
PHP解决雪花算法ID在前端精度丢失的问题

雪花算法(Snowflake)是一种用于生成全局唯一ID的算法,其基本思路是结合时间戳、机器ID、租约ID和序列号生成一个64位的数据,从而保证ID的唯一性。 雪花算法的生成过程如下:

522 2023/08/28

...
Vue项目H5微信分享IOS图片不显示

页面的结构如下: SPA: 页面A 页面B 从页面B进入,分享没问题,但从页面A再到页面B,再分享,IOS端就 […]

370 2023/08/24

...
go实现MD5

在这个示例中,我们使用了Go标准库中的crypto/md5包来计算一个字符串的MD5值。首先,我们将字符串转换 […]

685 2023/08/21

推荐文章 更多
  • PHP的反射(Reflection)

    PHP的反射(Reflection)是PHP的一个内置特性,它提供了一组类和接口,用于检查和操作类、对象、方法和属性等。通过反射,您可以获取类的信息、检查方法的参数和返回类型、创建和调用方法、获取和设置属性值等。 官方解析: 在PHP中,反射API定义了一组类和接口,用于对代码进行内省(introspection)和动态创建类、方法和属性等。这些类和接口包括: ReflectionClass(反射类):用于获取类的相关信息,如类名、父类、接口、方法和属性等。 ReflectionMethod(反射方法):用于获取方法的相关信息,如方法名、参数、返回类型等。 R

  • 依赖注入(DI)和控制反转(IoC)

    每个新技术的诞生,都是为了解决已存在的问题,在此开始之前,先让我们来看一下下面例子: interface PersonInterface { public function eat(); } class Dog implements PersonInterface { public function eat() { echo "Dog eat"; } } class Cat implements PersonInterface { public function eat() { echo "Ca

  • 虚拟滚动实现页面百万数据滚动

    1.概念 虚拟滚动是一种优化长列表性能的技术,它通过按需渲染的方式,只渲染可见部分的列表项,而不是渲染整个列表。 2.技术背景 在列表滚动中,如果列表数据有几万,几十万,就会生成大量的DOM元素,这样就会导致页面加载慢、卡顿甚至崩溃。因此,虚拟滚动技术,就是为了解决此问题而产生的。 3.原理 在具体实现上,虚拟滚动技术需要控制大列表中的DOM元素的创建与销毁,只创建可视区域内的DOM元素,非可视区域的DOM元素不创建。这样,在渲染大列表中的数据时,只创建少数的DOM元素,从而提高性能。虚拟滚动通过JS模拟的滚动来减少真实的滚动操作,防止页面加载慢、卡顿等问题,改

  • JavaScript中async和await的应用

    async和await是ES7中引入的关键字,用于简化Promise操作,提高Promise代码的可读性和理解性。它们结合使用可以使得异步调用不返回Promise对象,而直接把then回调函数的第一个形参result给返回出来,使代码更节俭,开发效率更高。 async函数声明:它是一个异步函数,而await只能在async函数中使用。 await的作用:是等待异步操作结束并直接拿到异步操作成功的结果。如果异步操作抛出异常,可以使用try...catch来进行捕获。 以下是一个使用async和await的示例: async function fetchUserDetai

  • PHP解决雪花算法ID在前端精度丢失的问题

    雪花算法(Snowflake)是一种用于生成全局唯一ID的算法,其基本思路是结合时间戳、机器ID、租约ID和序列号生成一个64位的数据,从而保证ID的唯一性。 雪花算法的生成过程如下: 时间戳:使用当前时间戳作为ID的一部分,时间戳的精度为纳秒级。 机器ID:使用本地的机器ID作为ID的一部分,机器ID可以通过环境变量、网络配置等方式获取。 租约ID:租约ID是一个可选的参数,可以用于区分不同的租户。租约ID的生成方式可以是用户自定义的。 序列号:序列号是一个递增的整数,用于保证生成的ID唯一。 根据以上四个参数,可以生成一个64位的雪花算法ID,其中

OBJUI公众号
热门文章 更多
  • 使用Echarts画甘特图

    Echarts是一个非常强大的图表库, 下面我们来使用它来画甘特图, 首先需要下载Echarts。下载地址:http://echarts.baidu.com/download.html 实现代码 <xmp> <div id="main" style="width: 600px;height:400px;"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echar

  • go语言怎么连接mysql,并实现增删改查

    要使用Go语言连接MySQL,需要使用第三方库。常用的库包括: go-sql-driver/mysql go-mysql-driver/mysql mysql-connector-go 这里以go-sql-driver/mysql为例,演示如何连接MySQL并实现增删改查操作。 安装go-sql-driver/mysql库 使用go命令行工具安装: go get -u github.com/go-sql-driver/mysql 连接MySQL db, err := sql.Open("mysql", "user:passw

  • Beego实现JWT

    Beego是一个基于Go语言的Web框架,实现JWT认证可以通过beego的中间件机制来实现,下面是一个简单的示例代码: package main import ( "github.com/astaxie/beego" "github.com/dgrijalva/jwt-go" "net/http" "time" ) func main() { beego.Router("/", &MainController{}) beego.InsertFilter("/secure/*", beego.BeforeExec, Valid

  • beego实现模块化开发

    Beego 框架可以通过模块化开发来提高项目的可维护性和可扩展性,可以将一个大型的应用划分为多个模块,每个模块独立维护,有自己的控制器、视图和模型等。 下面是一些实现 Beego 模块化开发的步骤: ​ 1、创建模块目录结构首先,你需要在你的 Beego 项目中创建一个 modules 目录,然后在 modules 目录下创建一个或多个子目录,每个子目录代表一个模块。在每个子目录下,你需要创建一个包含控制器、视图和模型等的目录结构。 例如: ├── conf ├── controllers ├── main.go ├── models ├── stati

  • go实现MD5

    import ( "crypto/md5" "encoding/hex" "fmt" ) // MD5加密 func Md5(str string) string { hash := md5.Sum([]byte(str)) md5str := hex.EncodeToString(hash[:]) return md5str } 在这个示例中,我们使用了Go标准库中的crypto/md5包来计算一个字符串的MD5值。首先,我们将字符串转换为[]byte类型,然后调用md5.Sum()方法计算其MD5值。该方法返回一个长

  • 使用Axios+PHP+JWT实现登录认证

    一、什么是JWT JWT(JSON Web Token),顾名思义就是可以在Web上传输的token,这种token是用JSON格式进行format的。它是一个开源标准(RFC7519),定义了一个紧凑的自包含的方式在不同实体之间安全的用JSON格式传输信息。 官网:https://jwt.io/ 二、JWT优缺点 优点:是在分布式系统中,很好地解决了单点登录问题,很容易解决了session共享的问题。 缺点:对分发出去的Token不可控,续签问题需要谨慎处理好。 三、JWT组成 一个JWT实际上就是一个字符串,它由三部分组成:头部、载荷与签名。

  • Linux服务器Rsync结合inotify同步文件

    一、实现效果 服务器A:192.168.161.150 (分布服务器)(rsync客户端+inotify)服务器B:192.168.161.151 (WEB服务器1)(rsync服务端)服务器C:192.168.161.152 (WEB服务器2)(rsync服务端) 说明:服务器A有文件更新,自动同步到服务器B和C 二、配置部署 1、服务器B:192.168.161.151/服务器C:192.168.161.152 1) 安装相应软件 #安装rsync(centos7默认安装) yum -y install rsync 2) 修改配置

  • wordpress自定义配置

    在制作插件时,自定义的配置项是经常会遇到的。在左侧“配置”的常规菜单下添加配置以下代码可实现: add_setting(){ register_setting( 'general', 'objui_keyword' ); add_settings_field( 'objui_keyword', '<label for="objui_keyword">关键词:</label>', function(){ $value = get_option( 'objui_keywor

  • JavaScript中async和await的应用

    async和await是ES7中引入的关键字,用于简化Promise操作,提高Promise代码的可读性和理解性。它们结合使用可以使得异步调用不返回Promise对象,而直接把then回调函数的第一个形参result给返回出来,使代码更节俭,开发效率更高。 async函数声明:它是一个异步函数,而await只能在async函数中使用。 await的作用:是等待异步操作结束并直接拿到异步操作成功的结果。如果异步操作抛出异常,可以使用try...catch来进行捕获。 以下是一个使用async和await的示例: async function fetchUserDetai

  • wordpress中使用事务处理

    $wpdb->query('START TRANSACTION'); $wpdb->insert($wpdb->prefix.'test', array( 'name'=>'零五网', 'url' =>'https://www.02405.com', 'createtime' => current_time('mysql') ) ); if ($wpdb->last_error) { $wpdb->query('ROLLBACK'); } else { $wpdb->query('COMMIT'); }