笔记
摇曳着春风
这个作者很懒,什么都没留下…
展开
-
分批批量下载文件的思路(PHP伪代码)
原因一次性下载的文件过多时,容易出现超时;压缩包过大也可能会出现问题原理分批思想(借鉴分页)js的异步编程递归思想实现步骤1. 服务端加强安全的措施限制ip用户必须登录使用分布式锁一般是redis实现的,key为唯一值,值为允许操作的参数【如一次只能一个用户下载,因此值为用户id】,设置有效期;因为是分批请求,所以检验时先判断能不能加上锁,能加上锁就继续,不能加上锁则判断是不是允许的值,不是则返回失败结果每次请求时给锁续上时间,下载完成后才解锁;要注意释放锁(服务端原创 2021-08-18 20:41:10 · 332 阅读 · 0 评论 -
select不可修改且不影响传值的解决方案
为什么这么做select标签不支持readonly属性,如果设置为disabled,则影响传值(解决方法:虽然可以在表单提交之前去掉disabled,但是我觉得麻烦)原理先保存当前被选中的值,当触发onchange事件时,就把下拉框被选中的值改为当前保存的值具体代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-原创 2021-02-02 20:29:17 · 757 阅读 · 0 评论 -
PHP数组key的强制转换以及in_array的注意事项
背景某个仓促上线项目的复杂查询使用到了in_array和使用数组的key进行判断是否在数组里,导致某些结果不符合预期。数组key的强制转换的例子<?php$arr = [ '0' => '0', '1-3' => '1-3', '20-30' => '20-30', '30-50' => '30-50', '>50' => '大于50',];echo "<pre>";foreach ($arr as原创 2020-12-23 20:49:31 · 391 阅读 · 0 评论 -
时长梯度统计
1.场景阅读时长、用户停留页面时长等场景2.问题频率太快会导致服务端压力变大,频率太慢又导致数据误差变大用户进入页面时间太短可能还没向服务端发出增加时长的请求3.js代码(先引入jquery) /* 逻辑:前10秒每2秒更新一次时长,10到120秒之间每5秒更新一次时长,大于等于120秒每10秒更新时长 */ $(f...原创 2020-04-18 18:43:33 · 227 阅读 · 0 评论 -
解决浏览器返回页面刷新问题
1.常见场景倒计时、弹框等场景。2.涉及到的知识点sessionStorage:1)遵循同源策略;2)用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据onpageshow:在用户访问页面时触发onpagehide:在用户离开当前网页跳转到另外一个页面时触发reload:重新加载当前文档要考虑部分浏览器不支持sessionStorage、onpagesh...原创 2020-04-18 17:25:20 · 2737 阅读 · 0 评论