月度归档: 2023 年 7 月

  • jquery css 实现网页下滑时,某个div保持页面为止不动

    最近在学seo,发现很多网站中都有这种的,页面下拉时某个div保持在页面的位置不动的效果,实现起来其实很简单,这边我们记录一下简单的代码

    jquery方法定义

        $.fn.smartFloat = function () {
            var position = function (element) {
                console.log(element);
                var top = element.position().top, pos = element.css("position");
                $(window).scroll(function () {
                    var scrolls = $(this).scrollTop();
                    if ((scrolls - 30) > top) {
                        if (window.XMLHttpRequest) {
                            element.css({
                                position: "fixed",
                                top: 0,
                                width: "100%",
                                "background-color": "#FFF",
                                "z-index": 1
                            });
                        } else {
                            element.css({
                                top: scrolls
                            });
                        }
                    } else {
                        element.css({
                            position: pos,
                            top: top
                        });
                    }
                });
            };
            return $(this).each(function () {
                position($(this));
            });
        };

    调用方法

    $(".post-view-ranking-wrap").smartFloat();
    
  • 宝塔面板登陆无效 Linux下通过 rm -f 删除大量文件时报错:Argument list too long

    问题描述

    我们在Vultr服务器中安装了宝塔面板(Vultr注册图文教程),但是宝塔面板在输入用户名密码之后显示登陆成功,但是还在登陆页面。之后通过终端查询命令时显示空间不足

    error: db5 error(28) from dbenv->open: No space left on device
    error: cannot open Packages index using db5 - No space left on device (28)
    error: cannot open Packages database in /var/lib/rpm
    Error: Error: rpmdb open failed

    查看磁盘占用

    [root@iZrj9aay1ndf3vrva7gs11Z ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        918M     0  918M   0% /dev
    tmpfs           936M  4.0K  936M   1% /dev/shm
    tmpfs           936M   17M  919M   2% /run
    tmpfs           936M     0  936M   0% /sys/fs/cgroup
    /dev/vda1        40G   33G  4.6G  88% /
    tmpfs           188M     0  188M   0% /run/user/0

    查看磁盘inode

    [root@iZrj9aay1ndf3vrva7gs11Z ~]# df -i
    Filesystem      Inodes   IUsed  IFree IUse% Mounted on
    devtmpfs        234785     337 234448    1% /dev
    tmpfs           239382       3 239379    1% /dev/shm
    tmpfs           239382    2171 237211    1% /run
    tmpfs           239382      17 239365    1% /sys/fs/cgroup
    /dev/vda1      2621440 2621440      0  100% /
    tmpfs           239382       5 239377    1% /run/user/0

    发现是inode使用率达到了惊人的100%,然后依次查找:

    for i in /*; do echo $i; find $i | wc -l; done
    

    最后发现是:/var/spool/postfix/maildrop

    这个目录文件过多,接着我们尝试删除文件,出现postfix的大量性能文件时报错

    -bash: /bin/rm: Argument list too long

    如下图所示:

    问题原因


    如?待删除文件中包含的小文件数量过多,通常是由于受到 shell 参数个数限制所致。

    这个是Linux系统存在的限制,可以通过如下指令查看该参数值的配置:

    getconf ARG_MAX

    解决办法

    • 删除操作为高风险命令,请一定谨慎使用。确认通过快照等方式对数据进行了有效备份,或者明确可以删除。
    • 如果待处理的文件数目过多,因为处理时间较长,推荐在业务低峰期进行操作,对磁盘的IO消耗较高。
    • 对于 cp、mv 等都可以采取相同的方式实现处理。
    • 请务必核实 dir 定义的目录中除了待删除文件外无其他类型的文件,避免误删?。

    可以通过如下方式尝试删除:

    结合 awk 删除

    可使用 awk 一次删除一个的方式进行删除。但必须先进入该目录下。操作方法如下:

    先进入该目标目录:

    如图:

    使用 awk 删除:

    ls -l| awk '{ print "rm -f ",$9}'|sh

    如图:

    再次使用命令 ls -l 查看,发现文件已经删除完成了.如图:

  • WordPress主题使用Google PageSpeed Insights 提示:未使用被动式监听器来提高滚动性能的警告的解决办法

    WordPress主题使用Google PageSpeed Insights 提示:未使用被动式监听器来提高滚动性能的警告的解决办法

    在使用 PageSpeed Insights 测试我们的WordPress站点的使用,如果前端加载了jQuery库,我们往往会收到一条「未使用被动式监听器来提高滚动性能」的警告,谷歌建议我们将触摸和滚轮事件监听器标记为 `passive`,以提高页面的滚动性能。

    为什么出现未使用被动式监听器的警告

    在浏览器渲染网页的过程中,默认情况下,浏览器会主动监听绑定到触摸和滚动事件,根据该事件的运行结果和是否阻止浏览器的默认行为来判断是否执行默认操作。比如我们可以在 touchstart 事件调用 preventDefault ,这时,浏览器会禁用该事件的默认操作,不会滚动或缩放。

    而浏览器无法预先知道一个监听器会不会调用 preventDefault(),它需要等监听器执行完后,再去执行默认行为,而监听器执行是要耗时的,这样就会导致页面卡顿。更深入的解释参考:移动Web滚动性能优化: Passive event listeners

    让WordPress内置的jQuery使用被动式监听器的办法

    如果我们把监听器的监听方式改为被动的,就可以消除掉这个延时,提高网页的触摸和滚动性能。虽然这个警告不会直接影响PageSpeed Insights的评分,解决掉这个延时后,对提高网页的用户体验还是有一些帮助的。

    截止本文发布之日,WordPress内置的jQuery尚不支持这个操作。很幸运的是,我们可以通过一段简单的代码来为jQuery加上这个支持。

    add_action('wp_enqueue_scripts', function ()
    {
        wp_add_inline_script('jquery', '
        jQuery.event.special.touchstart = {
            setup: function( _, ns, handle ) {
                    this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") });
                }
            };
            jQuery.event.special.touchmove = {
                setup: function( _, ns, handle ) {
                    this.addEventListener("touchmove", handle, { passive: !ns.includes("noPreventDefault") });
                }
            };
            jQuery.event.special.wheel = {
                setup: function( _, ns, handle ){
                    this.addEventListener("wheel", handle, { passive: true });
                }
            };
            jQuery.event.special.mousewheel = {
                setup: function( _, ns, handle ){
                    this.addEventListener("mousewheel", handle, { passive: true });
                }
            };'
        );
    }, 999);

    如果您的网站中没有使用jQuery,依然出现了未使用被动式监听器来提高滚动性能的警告,可以参考以上代码中的this.addEventListener 部分修改您的代码,来实现被动式监听。

  • 老商家BuyVM VPS主机服务器 限时补货 可选四机房 适合大硬盘不限流量

    老商家BuyVM VPS主机服务器 限时补货 可选四机房 适合大硬盘不限流量

    对于BuyVM VPS主机我们老站长用户应该是熟悉的,老季之前也写过一些关于他们家的文章。

    BuyVM已经有一定年头,早年对于新注册用户确实比较苛刻。动不动就禁止账户登录使用,如今商家产品依旧存在而且产品性价比较高,起步2美元可选4个机房,而且不限制流量。同时也有提供块存储大硬盘方案,256G硬盘仅需1.25美元,而且有支持安装Win和Linux系统,基于性价比较高,经常缺货,这里有临时补货,如果有需要可以选择。

    目前商家进行调整过,我们可以直接选择菜单”Dedicated KVM Slices”产品,然后如果磁盘不够用可以购买对应机房的块存储、单个块存储最高支持挂载10T。

    备注:卢森堡的VPS和块存储全部补货

    CPU内存硬盘价格迈阿密拉斯维加斯纽约卢森堡
    1核512M10G$2选择选择套餐选择选择
    1核1G20G$3.5选择选择套餐选择选择
    1核2G40G$7选择选择套餐选择选择
    1核4G80G$15选择选择套餐选择选择
    2核8G160G$30选择选择套餐选择选择
    3核12G240G$45选择选择套餐选择选择

    目前有四个机房,我们可以参考下看看官方提供的测试IP提供的测速记录。

    新泽西州 (New Jersey)

    普通IP地址:198.98.53.31

    高防IP地址:198.251.81.1

    测速文件:http://speedtest.nj.buyvm.net/1000MB.test

    Looking Glass:http://speedtest.nj.buyvm.net/

    卢森堡(Luxembourg)

    普通IP地址:104.244.76.191

    高防IP地址:198.251.89.251

    测速文件:http://speedtest.lu.buyvm.net/1000MB.test

    Looking Glass:http://speedtest.lu.buyvm.net/

    官方提供的这个测试IP好像我们国内无法访问。

    拉斯维加斯(Las Vegas)

    普通IP地址:209.141.56.135

    高防IP地址:198.251.80.221

    测速文件:http://speedtest.lv.buyvm.net/1000MB.test

    Looking Glass:http://speedtest.lv.buyvm.net/

    迈阿密(Miami)

    普通IP地址:45.61.184.128

    测速文件:https://speedtest.mia.buyvm.net/1000MB.test

    Looking Glass:https://speedtest.mia.buyvm.net

    以上是记录的官方提供的四个机房的测速情况。

WeChat