显示隐藏模块实现的几种方式

显示隐藏模块实现的几种方式

网页结构:

<style>
body {
    width: 400px;
    margin: 0 auto;
}
.btn {
    width:50%;
    height: 30px;
}
#box {
    width: 200px;
    height:100px;
    background-color: red;
    overflow: hidden;
}
</style>

<button id="btn-show" class="btn">显示</button>
<button id="btn-hide" class="btn">隐藏</button>
<div id="box" class=""> </div>

1、传统jQuery代码:

//函数的定义
var silent = {
    show: function ($elem) {
        $elem.html('<p>我要显示了</p>');
        $elem.show();
        setTimeout(function () {
            $elem.html($elem.html() + '<p>我已经显示了</p>');
        }, 1000)
    },
    hide: function ($elem) {
        $elem.hide();
    }
};
//函数的执行
var $box = $('#box');
$('#btn-show').on('click', function () {
    silent.show($box);
});
$('#btn-hide').on('click', function () {
    silent.hide($box);
});    

2、通过回调函数实现解耦

var silent = {
    show: function ($elem, showCallback, shownCallback) {
        if (typeof showCallback === 'function') showCallback();
        $elem.show();
        if (typeof shownCallback === 'function') shownCallback();
    },
    hide: function ($elem) {
        $elem.hide();
    }
};

var $box = $('#box');
$('#btn-show').on('click', function () {
    silent.show($box, function () {
        $box.html('<p>我要显示了</p>');
    }, function () {
        setTimeout(function () {
            $box.html($box.html() + '<p>我已经显示了</p>');
        }, 1000)
    });
});
$('#btn-hide').on('click', function () {
    silent.hide($box);
});

3、发布订阅模式

发布订阅模式可以让不同的人增加新的功能而互不影响。

var silent = {
    inti:function($elem){
        if($elem.is(':hidden')){
            $elem.data('status','hidden');
        }else{
            $elem.data('status','shown');
        }
    },
    show: function ($elem) {
        if ($elem.data('status') === 'show') return;
        if ($elem.data('status') === 'shown') return;
        $elem.data('status','show').trigger('show'); //绑定状态,阻止连续点击带来的资源浪费
        $elem.show();
        $elem.data('status','shown').trigger('shown');
    },
    hide: function ($elem) {
        $elem.data('status','hide').trigger('hide');
        $elem.hide();
        $elem.data('status','hidden').trigger('hidden');
    }
};

//触发事件
var $box = $('#box'); 
silent.inti($box);
$('#btn-show').on('click',function () {
    silent.show($box);
});

//小A同学对事件绑定的时间
$box.on('show shown hide hidden',function(e){
    if(e.type === 'show'){
        $box.html('<p>我要显示了</p>');
    }else if(e.type === 'shown'){
        setTimeout(function () {
            $box.html($box.html() + '<p>我已经显示了</p>');
        }, 1000);
    }
});
$('#btn-hide').on('click', function () { 
    silent.hide($box);
});
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. Buffer是一个缓存区,用于存放将要输出或将要输入的数据,而Cache是一种缓存机制,用于存储最常用的数据,以便更快地访问。 2. Keepalived是一种高可用性软件,它可以在多个服务器之间实现负载均衡和故障转移。它的工作原理是使用虚拟IP地址和心跳检测机制来监测服务器的状态,并在必要时将流量重定向到其他服务器。 3. NFS是一种网络文件系统,它允许多台计算机共享文件。默认情况下,NFS使用TCP端口2049。要挂载NFS存储,可以使用mount命令。 4. Linux中常用的内存和磁盘使用命令包括free、df、du、top等。 5. Linux中的查看命令通常用于查看系统状态和性能指标,如top、htop、vmstat、sar等。 6. 可以使用head和tail命令来查看文件的头部和尾部,也可以使用sed、awk等命令来查看文件的中间部分。 7. 常用的Linux内存命令包括free、top、vmstat等,free命令可以显示系统的内存使用情况。 8. 处理Linux服务器性能问题的方法包括使用top命令查看系统资源的使用情况,使用ps命令查看进程的状态,使用netstat命令查看网络连接情况,使用iostat命令查看磁盘I/O性能等。 9. top命令可以查看CPU、内存、进程等指标。 10. 可以使用smartctl命令来检查磁盘是否有问题。 11. 可以使用iostat命令来查看磁盘I/O性能。 12. LVS有三种模式:NAT模式、DR模式和TUN模式。NAT模式将真实服务器隐藏在一个虚拟IP地址后面,DR模式将真实服务器的网卡直接连接到LVS机器上,TUN模式则是在真实服务器和LVS机器之间建立一个隧道。 13. Keepalived有三个模块:VRRP模块、健康检查模块和通知模块。 14. Keepalived的健康检查机制包括TCP检查、HTTP检查、SMTP检查等,它会逐层检查服务器的状态,如果服务器出现故障,则会将流量重定向到其他可用的服务器上。 15. 可以使用zabbix自定义监测项来监测应用API是否正常,具体操作可以参考zabbix官方文档。 16. 监控脚本文件可以放在任何一个目录下,可以通过zabbix agent配置文件中的UserParameter选项来让agent与监控脚本交互。 17. 推送镜像到Docker Hub仓库的操作流程包括打标签、登录账户、上传镜像等步骤。 18. 在新版本的Kubernetes中,Docker被替换为CRI-O或Containerd等容器运行时,具体操作可以参考Kubernetes官方文档。 19. 如果Kubernetes节点出现notready状态,可以使用kubectl describe命令查看哪个服务出现了问题,并进行排查和修复。 20. Pod调度机制包括NodeSelector、Affinity和Taints & Tolerations等方式。 21. Kubernetes中的Service类型包括ClusterIP、NodePort、LoadBalancer和ExternalName等,每种类型都有不同的使用场景和特点。 22. Kubernetes中的持久化方式包括HostPath、Local、NFS、iSCSI等,每种方式都有不同的优缺点。 23. 在二进制部署的Kubernetes中,Pod的维护是通过kubelet组件来实现的。 24. Ansible中role的目录结构包括tasks、files、templates、vars、defaults、meta等目录,每个目录都有不同的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值