董俊俊 的个人动态
  • 董俊俊 发布了文章
    4个月前

    如何选择 Laravel 框架版本

    说明 很久以前在一个话题里面聊到的观点,很多同学在 Laravel 版本选择时候比较混淆,这里说下我的看法。 对 Laravel 框架发布周期不熟悉的同学请参阅 - Lara
  • 董俊俊 回答了问题
    4个月前

    前后端分离,前端如何判断登录状态?

    我那时候做项目,前后端分离用的是 JWT,把后端生成的 JWT token 存入 localStorage,然后前端切换路由(刷新页面)的时候,通过 Ajax 去后端判断当前的 token 是否有效,还有一个就是在发送Ajax 请求的时候带上这个 token。

  • 董俊俊 回答了问题
    4个月前

    PHP和vue做前后端分离,登录状态怎么记录。

    登录成功之后你返回前端一个加密的字符串token, 把这个token对应的值写入redis 后续前端的请求都要携带这个token 后端做判断即可

  • 董俊俊 回答了问题
    4个月前

    PHP和vue做前后端分离,登录状态怎么记录。

    1. Vue请求php登陆,验证通过之后,PHP返回一个token的JSON,可以使用JWT来做,Vue拿到这个Token存储在localStorage
    2. Vue请求登陆后的接口时,在请求头放入第1步的token
    3. PHP读取请求头,使用JWT解出数据
  • 董俊俊 回答了问题
    4个月前

    在浏览器的cosole控制台输入一段代码,能把页面的dom元素用不同的线标示出来,就是border

    <script>
        (function() { 
            const style = document.getElementById('outlineStyle'); 
            if (style) { 
                style.parentNode.removeChild(style); 
            } else { 
                const style = document.createElement('style'); 
                style.innerText = '* {outline: 1px solid red}'; 
                style.id = 'outlineStyle'; 
                document.head.appendChild(style); 
            } 
        })();
    </script>

    新建一个书签,将上面的代码代码作为网址保存.
    点击书签打开调试模式,再次点击关闭.

    不要用上面的那位的代码,性能差,dom多可能会卡顿.而且用border会导致盒模型扩大,使页面变形.

  • 董俊俊 收藏了文章
    4个月前

    [学习笔记] Laravel消息通知流程梳理

    当我进行对一个帖子回复评论的时候,经过路由到达 reply 评论控制器下的 store 方法,这个方法接收数据进行保存。 保存完成后,事件观察器启动 created 方法启动,这个观察器接收
  • 董俊俊 发布了文章
    4个月前

    [学习笔记] Laravel消息通知流程梳理

    当我进行对一个帖子回复评论的时候,经过路由到达 reply 评论控制器下的 store 方法,这个方法接收数据进行保存。 保存完成后,事件观察器启动 created 方法启动,这个观察器接收
  • 董俊俊 点赞了文章
    4个月前

    把 if-else 的代码风格改成表格驱动法的意义

    表格驱动的意义在于:逻辑和数据分离。 我来分析一下在项目中的现实意义: 在程序中,添加数据和逻辑的方式是不一样的,成本也是不一样的。简单的说,数据的添加是非常简单,低成本和低风险的;而逻辑
  • 董俊俊 发布了文章
    4个月前

    把 if-else 的代码风格改成表格驱动法的意义

    表格驱动的意义在于:逻辑和数据分离。 我来分析一下在项目中的现实意义: 在程序中,添加数据和逻辑的方式是不一样的,成本也是不一样的。简单的说,数据的添加是非常简单,低成本和低风险的;而逻辑
  • 董俊俊 关注了用户
    4个月前
    小花花
    小花花

    这家伙太懒,懒得介绍自己~~~

  • 董俊俊 回答了问题
    4个月前

    如何正确使用redis队列处理php秒杀并发问题?

    我是这么干的。
    比如你有1000个秒杀商品
    设计就这样,

    大家到等待秒杀的页面,点击秒杀按钮,然后ajax请求一个api接口,这个接口的核心代码就是

    $number = $redis->incr($key);
    if ($number > 1000) {
        return '抢光了';
    } else {
        $_SESSION['flag'] = 1;
        return redirect('跳转到下一个页面');
    }

    这样抢到的人就可以在下个页面慢吞吞的填写资料,没抢到的人就可以在当前页面死心。

  • 董俊俊 发布了文章
    4个月前

    php实现秒杀系统

    压测工具 当我们将整个代码逻辑写完了之后,我们需要测试性能是怎么样的,这个时候就需要用到压测工具,压测工具选择比较多,但是他们的基本原理是相近的。 通过多线程的模式,并发的访问我们需要压测
  • 董俊俊 回答了问题
    4个月前

    抢购场景下,redis原子性控制超卖问题

    你的思路不错,可以继续去想下直接incrby改会有什么问题,老师提供的思路只是其中一个方案,真正场景实现肯定会有非常多的方案,需要大家自己思考。

    redis->eval本身就是执行lua脚本,redis->incrby理论上也可以防止边界条件的发生,不会造成超卖,因为incrby就实现了查询+修改的原子操作,但是有一点点小缺点就是,不能做到只要一超卖了就直接终止+1。

  • 董俊俊 发布了文章
    4个月前

    如何预估服务器带宽需求

    PC=PV/T*C*t*f 其中,PC是并发数,T是观测时间,即产生PV的时间长度,比如一天中的14个小时产生了20万并发,则公式中T=14*60*60秒,PV=20万。C是单个页面请求的HTTP连
  • 董俊俊 点赞了文章
    4个月前

    Java 编程技巧之数据结构

    导读 唐宋八大家之一欧阳修在《卖油翁》中写道: 翁取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿。因曰:&ldquo;我亦无他,唯手熟尔。&rdquo; 编写代码的&
最近访客
  • 小花花
    小花花 1个月前