动用css3去实施动画,3.Linux应用 Shell检查实验进度

2019-07-21 作者:小鱼儿主页高手论坛   |   浏览(181)

本文实例讲述了jquery滚动加载数据的方法。分享给大家供大家参考。具体分析如下:

本文实例讲述了jquery插件corner实现圆角边框的方法。分享给大家供大家参考。具体如下:

在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出现异常时及时报警,通知系统管理员。本文介绍在Linux系统下几种常见的监控需求及其shell脚本的编写。

当Html5,css3已渐渐成为主流的时候,我还非常习惯的用js去做一些简单的动画。因为在桌面浏览器上, 并非所有的都支持css3。用户也倒是很奇怪,用户习惯并不是每个用户都可以被培养。总有不少人会觉得win7.win8没xp好用。但手机方面就大不一样了,手机浏览器对html5和css3的支持还是很不错的。但手机硬件处理能力却又十分有限。在四核、八核手机横行的今天,依然有像我这样使用双核或单核手机的。js虽好,单奈何接触不多,调不好那种感觉。一个简单的页面滑动,在i7的pc上运行十分流畅,可是,在我的双核手机上就卡、顿、卡、顿。令人十分郁闷。为此,我也是寻找了很久很久,看了很多很多。终于在不就之前,找到了一种还算简单的方法:使用css3去执行动画。

我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览。这种技术我暂且称它为滚屏加载技术,我们发现很多网站用到这种技术,例如新浪微博、QQ空间等。

复制代码 代码如下:

文章目录:

  在以前,对于动画除了Jquery的animate等动画函数外,更多的是使用setTimeout,setInterval,这样循环的去改变一个元素的margin、width、top等属性。也正是如此,才有了我的困惑。

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
";
<html xmlns=";
<head>
   <title>jQuery Corners</title>
   <script type="text/javascript" src="jquery.js"></script>
   <script type="text/javascript" src="jquery.corners.min.js"></script>
   <script type="text/javascript">
   $( function(){$('.roundedd').corners();}) 
   </script>
   <style type="text/css">
   .roundedd 
   { 
      background-color:#eeeeee; 
   } 
   </style>
</head>
<body>
<div style="" class="roundedd">
class="rounded {10px}"
</div>
</body>
</html>

1.Linux使用 Shell 检查进程是否存在
2.Linux使用 Shell检测进程 CPU 利用率
3.Linux使用 Shell检测进程内存使用量
4.Linux使用 Shell检测进程句柄使用量
5.Linux使用 Shell查看某个 TCP 或 UDP 端口是否在监听
6.Linux使用 Shell查看某个进程名正在运行的个数
7.Linux使用 Shell检测系统 CPU 负载
8.Linux使用 Shell检测系统磁盘空间
9.总结

  首先,setTimeout,setInterval 这货并非你设置0ms它就能一直一直的去执行。曾经在iscroll里调试的时候无意中发现了这个秘密。原来Timer延时的计算依靠的是浏览器的内置时钟,而时钟的精确度又取决于时钟更新的频率。IE8及其之前的IE版本更新间隔为15.6毫秒。完了,我想它10ms执行1px位移,它还不能准时的干这事。

复制代码 代码如下:

这里测试了一下发现一个问题bug:若background-color:#eeeeee;写成background-color:red;或 background-color:yellow;在火狐没问题,如果是IE的话就看不到效果了,所以建议用颜色RGB代码。
 
演示地址为:
 

检查进程是否存在

  而卡又是怎么回事呢?卡,因为代码写的不好。毕竟js是单线程的,一旦有耗时的动作那么UI就可能不响应了。虽然我们使用了setTimeout,但正是因为setTimeout让我们看上去界面没死可动作却又不流畅了。因为这次setTimeout执行之后,在下次执行前,中间这个间隔里很可能遇到另一个耗时的动作,那么,setTimeout的执行就无限后延。然后呢?卡!然而,卡还能有下一个原因,改变原始属性时不小心触发浏览器Layout(即:重布局)。这个问题说它不耗时呢,却又耗时,说它耗时呢,很多时候却又可以忽略。但很多时候其实是不能忽略的。

<!DOCTYPE=html>
<html>
小鱼儿主页高手论坛,<head>
<script src="js/jquery.js" type="text/javascript"></script>
   <script type="text/javascript">
    $(document).ready(function(){
        var range = 50;             //距下边界长度/单位px
        var elemt = 500;           //插入元素高度/单位px
        var maxnum = 20;            //设置加载最多次数
        var num = 1;
        var totalheight = 0;
        var main = $("#content");                     //主体元素
        $(window).scroll(function(){
            var srollPos = $(window).scrollTop();    //滚动条距顶部距离(页面超出窗口的高度)
            //console.log("滚动条到顶部的垂直高度: " $(document).scrollTop());
            //console.log("页面的文档高度 :" $(document).height());
            //console.log('浏览器的高度:' $(window).height());
            totalheight = parseFloat($(window).height()) parseFloat(srollPos);
            if(($(document).height()-range) <= totalheight  && num != maxnum) {
                main.append("<div style='border:1px solid tomato;margin-top:20px;color:#ac" (num ) (num ) ";height:" elemt "' >hello world" srollPos "---" num "</div>");
                num ;
            }
        });
    });
    </script>
</head>
<body>
    <div id="content" style="height:960px">
        <div id="follow">this is a scroll test;<br/>    页面下拉自动加载内容</div>
        <div style='border:1px solid tomato;margin-top:20px;color:#ac1;height:800' >hello world test DIV</div>
    </div>
</body>
</html>

希望本文所述对大家的jQuery程序设计有所帮助。

在对进程进行监控时,我们一般需要得到该进程的 ID,进程 ID 是进程的唯一标识,但是有时可能在服务器上不同用户下运行着多个相同进程名的进程,下面的函数 GetPID 给出了获取指定用户下指定进程名的进程 ID 功能(目前只考虑这个用户下启动一个此进程名的进程),它有两个参数为用户名和进程名,它首先使用 ps 查找进程信息,同时通过 grep 过滤出需要的进程,最后通过 sed 和 awk 查找需要进程的 ID 值(此函数可根据实际情况修改,比如需要过滤其它信息等)。

  除了上面这两段,还有一个问题,就是在很多手机上总感觉是一帧一帧的,而且还可能是一帧长一帧短。这真是能把人都搞废的节奏。为何会这样呢,依然和settimeout的推迟有一定的关系。丢帧。这个问题有涉及到显示器的刷新频率问题。实在太复杂了。

希望本文所述对大家的jQuery程序设计有所帮助。

您可能感兴趣的文章:

  • jquery给图片添加鼠标经过时的边框效果
  • JQuery实现鼠标移动到图片上显示边框效果
  • jquery(1.3.2) 高亮选中图片边框
  • jquery photoFrame 图片边框美化显示插件
  • jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
  • JQuery拖动表头边框线调整表格列宽效果代码
  • jquery加载页面的方法(页面加载完成就执行)
  • 12款经典的白富美型—jquery图片轮播插件—前端开发必备
  • jquery 如何动态添加、删除class样式方法介绍
  • jquery ajax提交表单数据的两种方式
  • jQuery实现边框动态效果的实例代码

清单 1. 对进程进行监控

  最后选择了CSS3,js动态的改变元素的属性,使用transition来控制动画执行时间。举个例子:

您可能感兴趣的文章:

  • 基于jquery实现页面滚动到底自动加载数据的功能
  • 当滚动条滚动到页面底部自动加载增加内容的js代码
  • 使用jQuery或者原生js实现鼠标滚动加载页面新数据
  • jQuery实现页面滚动时动态加载内容的方法
  • js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法

复制代码 代码如下:

复制代码 代码如下:

 function GetPID #User #Name
 {
    PsUser=$1
    PsName=$2
    pid=`ps -u $PsUser|grep $PsName|grep -v grep|grep -v vi|grep -v dbxn
    |grep -v tail|grep -v start|grep -v stop |sed -n 1p |awk '{print $1}'`
    echo $pid
 }  

<div id="test" style="transition:all 1s ease; width:100px;" ></div>

示例演示:

js:

1)源程序(例如查找用户为 root,进程名为 CFTestApp 的进程 ID)

复制代码 代码如下:

复制代码 代码如下:

$("#test").width(200);

    PID=`GetPID root CFTestApp`
 
    echo $PID

  这样1秒之后这个div的宽度会变成200px。不是孙悟空变桃子一样瞬间变大,慢慢的赶脚,不卡不顿。而且使用css动画有个好处,它不受耗时js的影响。虽然浏览器中UI线程与js线程是互斥,但这一点对css动画不成立,并且很多浏览器还能启用硬件加速(比如:Chrome)。虽然浏览器重布局普通情况下感觉不是很明显,但还是应该尽量避免大面积的重布局。so在动画元素上加上-webkit-transform: translateZ(0);或者-webkit-transform: translate3d(0,0,0);这样浏览器会独立渲染这一层。即便是重布局无法避免,这样面积也小些。而使用translate取代margin也确实是一个十分明智的决定。

2)结果输出

  最后附上一些常用的改变时会触发重布局的属性:     

复制代码 代码如下:

复制代码 代码如下:

    11426
    [dyu@xilinuxbldsrv shell]$

   width
   height
   padding
   margin
   display
   border-width
   border
   min-height

3)结果分析

以上就是本文所述的全部内容了,希望对大家学习javascript和CSS3能够有所帮助,同时不足之处烦请补充,谅解。

从上面的输出可见:11426 为 root 用户下的 CFTestApp 程序的进程 ID。

您可能感兴趣的文章:

  • JS和JQuery实现雪花飘落效果
  • JS Canvas 实现下雨下雪效果
  • javascript实现下雪效果【实例代码】
  • JS实现模拟风力的雪花飘落效果
  • 使用javascript实现雪花飘落的效果
  • 用js代码和插件实现wordpress雪花飘落效果的四种方法
  • 使用js实现雪花飘落效果
  • JS实现超炫网页烟花动画效果的方法
  • js实现类似jquery里animate动画效果的方法
  • 原生JS实现的雪花飘落动画效果

4)命令介绍

  1. ps: 查看系统中瞬间进程信息。 参数:-u< 用户识别码 > 列出属于该用户的程序的状况,也可使用用户名称来指定。 -p< 进程识别码 > 指定进程识别码,并列出该进程的状况。 -o 指定输出格式 2. grep: 用于查找文件中符合字符串的当前行。 参数:-v 反向选择,亦即显示出没有 ‘搜寻字符串' 内容的那一行。 3. sed: 一个非交互性文本编辑器,它编辑文件或标准输入导出的文件,一次只能处理一行内容。 参数:-n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。 p 标志 打印匹配行 4. awk:一种编程语言,用于在 linux/unix 下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是 linux/unix 下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk 的处理文本和数据的方式:它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出 ( 屏幕 ),如果没有指定模式,则所有被操作所指定的行都被处理。 参数:-F fs or –field-separator fs :指定输入文件折分隔符,fs 是一个字符串或者是一个正则表达式,如 -F:。
    有时有可能进程没有启动,下面的功能是检查进程 ID 是否存在,如果此进程没有运行输出:

复制代码 代码如下:

    The process does not exist.
    # 检查进程是否存在
    if [ "-$PID" == "-" ]
    then
    {
        echo "The process does not exist."
    }
    fi

检测进程 CPU 利用率

在对应用服务进行维护时,我们经常遇到由于 CPU 过高导致业务阻塞,造成业务中断的情况。CPU 过高可能由于业务量过负荷或者出现死循环等异常情况,通过脚本对业务进程 CPU 进行时时监控,可以在 CPU 利用率异常时及时通知维护人员,便于维护人员及时分析,定位,以及避免业务中断等。下面的函数可获得指定进程 ID 的进程 CPU 利用率。它有一个参数为进程 ID,它首先使用 ps 查找进程信息,同时通过 grep -v 过滤掉 %CPU 行,最后通过 awk 查找 CPU 利用百分比的整数部分(如果系统中有多个 CPU,CPU 利用率可以超过 100%)。

清单 2. 对业务进程 CPU 进行实时监控

复制代码 代码如下:

function GetCpu
  {
   CpuValue=`ps -p $1 -o pcpu |grep -v CPU | awk '{print $1}' | awk -  F. '{print $1}'`
        echo $CpuValue
    }

下面的功能是通过上面的函数 GetCpu 获得此进程的 CPU 利用率,然后通过条件语句判断 CPU 利用率是否超过限制,如果超过 80%(可以根据实际情况进行调整),则输出告警,否则输出正常信息。

清单 3. 判断 CPU 利用率是否超过限制

复制代码 代码如下:

 function CheckCpu
 {
    PID=$1
    cpu=`GetCpu $PID`
    if [ $cpu -gt 80 ]
    then
    {
 echo “The usage of cpu is larger than 80%”
    }
    else
    {
 echo “The usage of cpu is normal”
    }
    fi
 }  

 示例演示:

1)源程序(假设上面已经查询出 CFTestApp 的进程 ID 为 11426)

复制代码 代码如下:

本文由小鱼儿玄机30码发布于小鱼儿主页高手论坛,转载请注明出处:动用css3去实施动画,3.Linux应用 Shell检查实验进度

关键词: 小鱼儿玄机30码