- 博客(11)
- 收藏
- 关注
原创 前端优雅地执行长任务
这里以在页面上插入10W个数为案例,如果简单粗暴的通过for循环来执行,必然会出现页面卡顿,如果数字太多,甚至可能导致该标签页崩溃。工作中遇到过需要批量操作页面上大量dom的情况,结果就是页面出现长时间卡顿,如今了解到或可以通过一个Api(// 通过该Api可以将一个长任务进行切片,保证每次渲染都能执行一个分片。// 浏览器会一直等待任务执行完成后再执行渲染。// 由于浏览器是每隔一段时间执行一次渲染。// 浏览器会在空闲时调用传入的函数。// 这段代码执行起来效果感人。// 导致页面出现长时间无变化。
2024-04-30 16:28:12
249
1
原创 MongoDB使用$in查询的注意事项
问题描述在php+mongodb开发中使用$in进行查询报错:$in needs an array打印了$in的参数,确认是数组没错,仔细比对后发现是索引问题原因分析:MongoDB 2.6.0版本后,$in的参数需要为数组,而且必须是索引数组,如果数组的索引存在问题,则会被转换为bson结构,就会报上面的错误。索引数组是指索引从0开始,且自动分配递增的数组,下面两种是不行的:$a = [0 => 'a', 1 => 'b', 3 => 'c'];$b = [1 =>
2022-05-26 14:39:10
1467
原创 git切换源的几个操作
由于最近手头项目需要切换源,所以用到了以下几个平时不会用到的命令:仅用来方便遇到同样问题的童鞋,毕竟正常情况下也不需要用到这些命令。首先是切换源git remote set-url origin [remote_address]PS:也可以通过git remote remove命令先删除现有源,再通过git remote add命令添加新的源,但是麻烦同步git pull本地分支关联远程分支先提交本地分支代码后再进行关联git branch --set-upstream-t
2022-05-20 11:02:47
6459
原创 “最少知识”原则
最少知识原则告诉我们要减少对象之间的交互,只留下几个“密友”。这个原则通常是这么说的设计原则最少知识原则:只和你的密友谈话。究竟要怎样才能避免这样呢?这个原则提供了一些方针:就任何对象而言,在该对象的方法内,我们只应该调用属于一下范围的方法:该对象本身被当作方法的参数而传递进来的对象此方法所创建或实例化的任何对象对象的任何组件1-3告诉我们,如果某对象是调用其他的方法的返回结果,不要调用该对象的方法!4告诉我们,把“组件”想象成被实力变量所引用的任何对象,换句话说,把这想象成是“有一个
2021-06-17 11:42:26
167
原创 重构之if-else
一般而言,我们写if-else是为了异常情况处理和不同状态处理,举栗说明://异常情况处理$obj = new Object();if( $obj === null ){ //do something}else{ //do something}//不同状态处理$obj = new Object();if( $obj->getType() == 1 ){ //do something}elseif( $obj->getType() == 2 ){ //do
2021-02-20 19:07:22
362
原创 MongoDB更新注意事项
MongoDB更新注意事项如果一个字段同时被多个更新操作符更新会报错Updating the path '*' would create a conflict at '*'举个栗子://原文档{ "_id": ObjectId("6018e5dfeb2e0000ee004aea"), "name": "lillian", "contacts": [ [ 1, 2 ], "222
2021-02-02 13:55:39
2451
原创 MongoDB 索引
MongoDB 索引索引定义复合索引多键索引索引特性唯一性稀疏性索引定义对文档部分内容进行排序的数据结构,可以加快文档查询和排序的速度。MongoDB的索引采用B-tree的数据结构,有关这种数据结构以及和B+tree的区别另开文章讲述。(—这里将来会有个链接—)复合索引accounts 集合文档:{ name : "alice", currency : "cny", balance : 100 },{ name : "alice", currency : "usd", balance :
2021-01-22 16:57:18
326
原创 MongoDB 聚合阶段顺序优化
MongoDB笔记1聚合操作的优化聚合阶段顺序优化聚合操作的优化聚合阶段顺序优化简易记录,后期再整理$match + $projectmongoDB会尽可能将 $match 阶段放在 $project 前执行//原代码[ { $project : { _id : 0, currency : 1, notional : { $multiply : [ "$price", "$qty" ] } } }, { $match : { currency : "USD"
2021-01-22 11:52:42
668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人