`
huangyongxing310
  • 浏览: 494094 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

定时调用函数功能实现

 
阅读更多
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title></title>
    <script src="../miniui/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
    <script src="commonJs.js" type="text/javascript"></script>
    <script src="canvasJs.js" type="text/javascript"></script>
    <script src="jqCommonJs.js" type="text/javascript"></script>
</head>

<style>
    .test {
        border: 1px solid darkgray;
        overflow: hidden;
        background-size: 300px auto;
        background-image: url(123456789.png);
        background-repeat: no-repeat;
        background-position: 0px 0px;
    }

    .test:hover {
        cursor: move;

    }
</style>

<body>

<button value="放大" onclick="testFun()">调用
</button>


</body>

<script type="text/javascript">

    //函数格式   
    // {
    //     funId:{
    //         functionName:"testFun",
    //         functionParam:{},
    //         successCallback:"function(result)",
    //         failCallback:"function(error)"
    //     }
    // }


    var sysnFunCallObj = {};

    /**
     * @Desc:
     * @param {object} obj
     * @param {string} field
     * @return {object}
     * @author huangyx
     */
    function deleteObjField(obj,field) {
        delete obj[field];
        return obj;
    }

    //异步调用
    function callSysnFun(functionName, functionParam, successCallback, failCallback) {
        var callId = commonJs.getUuid();
        var temp = {
            functionName: functionName,
            functionParam: functionParam,
            successCallback: function ( result) {
                if (successCallback) {
                    successCallback(result)
                }
                // deleteObjField(sysnFunCallObj, callId);
            },
            failCallback: function ( error) {
                if (failCallback) {
                    failCallback(error)
                }
                // deleteObjField(sysnFunCallObj, callId);
            },
        };
        sysnFunCallObj[callId] = temp;
        // commonJs.commonConsole(sysnFunCallObj,"callSysnFun sysnFunCallObj")
    }

    //异步处理
    function sysnFunDeal() {
        var sysnFunCallObjTemp = commonJs.deepClone(sysnFunCallObj);
        sysnFunCallObj={};//清空等待下一批的调用放入
        for(var callId in sysnFunCallObjTemp){
            var temp = sysnFunCallObjTemp[callId];
            commonJs.commonConsole(temp,"sysnFunDeal temp");
            try {
                var result = this[temp["functionName"]](temp["functionParam"]); //调接口
                temp["successCallback"](result); //回调
                // commonJs.commonConsole(result,"sysnFunDeal successCallback");
                // commonJs.commonConsole(sysnFunCallObj,"sysnFunDeal sysnFunCallObj")
            } catch (err) {
                // commonJs.commonConsole(err,"sysnFunDeal err");
                temp["failCallback"](err); //回调
            }
        }
    }

    function timerDealSysnFun(){
        //要执行的操作
        var timer=setTimeout(function(){
            sysnFunDeal();
            timerDealSysnFun();
            clearTimeout(timer);//执行完再进行定时
        },50)
    }

    function calFun1(params) {
        commonJs.commonConsole(params,"calFun1 params");
        return {id:"calFun1"};
    }

    function calFun2(params) {
        commonJs.commonConsole(params,"calFun2 params");
        throw "测试异常输出";
        // return {id:"calFun2"};
    }
   
    timerDealSysnFun();

    function testFun() {
        callSysnFun("calFun1",{id:"testFun calFun1"},function (result) {
            commonJs.commonConsole(result,"testFun calFun1 result");
        },function (error) {
            commonJs.commonConsole(error,"testFun calFun1 error");
        });

        callSysnFun("calFun2",{id:"testFun calFun2"},function (result) {
            commonJs.commonConsole(result,"testFun calFun2 result");
        },function (error) {
            commonJs.commonConsole(error,"testFun calFun2 error");
        })
    }


</script>
</html>
分享到:
评论

相关推荐

    C# 自动,定时关机程序(用到API函数) 教学用

    对于自动定时关机的功能,我们需要关注以下几个关键的API函数: 1. `kernel32.dll`库中的`SetSystemTime`函数:这个函数允许我们修改系统的日期和时间,以便设置定时关机的时间。在C#中,我们需要定义这个函数的...

    c#每隔一段时间就调用程序

    总结一下,C#中使用`System.Timers.Timer`类可以方便地实现定时调用程序或执行周期性任务。通过设置间隔时间、定义事件处理方法以及启用和配置计时器,我们可以创建一个可按需运行的定时器,以满足各种定时任务的...

    C#精确定时函数,可实现ms级定时,误差不累积

    在C#编程中,开发人员经常需要实现定时任务,例如定时执行某个操作或者精确到毫秒级别的计时功能。为了实现这样的需求,C#提供了一系列的API和工具,但默认的`System.Threading.Thread.Sleep()`方法在精度上并不理想...

    Linux系统函数调用大全PDF.rar

    《Linux系统函数调用大全》是一本深入探讨Linux操作系统中函数调用的宝贵资源,它涵盖了广泛的主题,旨在帮助开发者和系统管理员更好地理解和利用Linux内核功能。这本书以PDF格式提供,是学习和查阅Linux系统编程的...

    我写的调用网页的javascript函数!请大家帮忙看看!

    4. **定时调用**:使用`setInterval`或`setTimeout`可以按照指定的时间间隔重复或一次性执行函数。 ```javascript setInterval(myFunction, 1000); // 每1秒执行一次 setTimeout(myFunction, 5000); // 5秒后执行一...

    操作系统函数调用大全

    在编程领域,尤其是在嵌入式系统开发过程中,操作系统函数的调用对于实现高效的资源管理和任务调度至关重要。本文旨在介绍一系列与操作系统相关的函数调用,重点是Zigbee协议栈中的OSAL层API函数。这些函数主要用于...

    易语言源码易语言定时关闭API函数的应用.rar

    易语言是一种专为中国人...总的来说,这个易语言源码示例展示了如何通过API函数来实现定时关闭计算机的功能,对于学习易语言的初学者来说,是一个很好的实践案例,可以帮助理解API调用、事件处理以及系统级操作的概念。

    Python-Devops定时调用http接口定时执行SSH命令的WEB定时任务工具

    本项目名为“Python-Devops定时调用http接口定时执行SSH命令的WEB定时任务工具”,是一个基于Python3开发的解决方案,其核心是利用Flask-APScheduler库来实现定时任务的调度。 Flask是一个轻量级的Python Web框架,...

    易语言定时关闭API函数的应用

    在易语言中,我们可以利用API(应用程序接口)函数来实现各种功能,其中包括定时关闭计算机这一实用功能。API函数是操作系统提供的一系列预定义函数,允许程序与操作系统进行交互。 本话题主要讨论如何在易语言中...

    自己写的stm32 1602 驱动debug systick精确延时 全部单独文件使用直接调用函数

    通常,STM32项目会将不同功能模块(如LCD驱动、SYSTICK配置、中断处理等)放在不同的源文件中,然后在主程序中通过包含头文件来调用相应的函数。 在这个项目中,开发者将STM32的1602 LCD驱动、SYSTICK定时器的延时...

    setInterval定时调用ajax实现在线人数统计-你得到了正确的数据那才是你会了,-

    标题中的“setInterval定时调用ajax实现在线人数统计”是一个常见的Web开发技术,用于实时更新网站的在线用户数量。这个技术结合了JavaScript的`setInterval`函数和Ajax(异步JavaScript和XML)请求,用于定期向...

    WinXP 下 定时关机函数

    在Windows XP操作系统中,实现定时关机功能是通过调用特定的系统API函数来完成的。这个过程涉及到编程,特别是使用C/C++等语言。在Windows API中,有两个主要的函数与关机操作相关,它们是`InitiateSystemShutdown`...

    Ajax实现定时刷新,获取后台数据实现技术

    例如,我们创建一个函数fetchData(),该函数使用Ajax从后台获取数据,然后用setInterval()定时调用这个函数。 ```javascript function fetchData() { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = ...

    C#调用API实现的关机,c#定时关机,c#定时关机软件

    本篇文章将深入探讨如何使用C#调用API来实现系统关机以及创建定时关机软件。API(Application Programming Interface)是操作系统提供给开发者用于与系统进行交互的一组接口,通过调用这些接口,我们可以实现对...

    C#实现定时发送邮件功能

    在本示例中,我们关注的是如何利用C#实现一个定时发送邮件的功能。这个功能通常在需要定期向用户发送通知、报告或其他重要信息的场景下非常有用。我们将探讨以下几个关键知识点: 1. **System.Net.Mail**: 这是.NET...

    TIA博途WINCC-利用VB脚本和计划任务实现画面定时跳转功能.docx

    在WinCC中,通过VB(Visual Basic)脚本和计划任务,我们可以实现各种自定义功能,比如画面的定时跳转,这在很多生产流程监控和人机交互场景中非常有用。下面将详细介绍如何利用这些工具来实现这一功能。 首先,...

    基于vb实现定时关机功能

    然而,VB本身并没有提供这个函数,我们需要从Windows API中调用`SetTimer`函数来实现类似的功能。 2. `ShutdownSystem`:这个函数用于执行关机操作。在Windows API中,我们可以调用`kernel32.dll`库中的`...

    VC onTimer()函数实现秒表功能.rar

    这个函数的典型实现会包含更新UI、执行周期性任务或者记录时间流逝等功能。 在秒表应用中,首先需要创建一个定时器对象,并设置一个合适的间隔,比如1毫秒,这样可以保证时间的精度。然后,在开始按钮的点击事件中...

    unix实验6 实现mysleep函数

    1、使用alarm函数实现定时。 2、必须正确处理mysleep函数中的闹钟与调用者可能设置的闹钟之间的关系。例如,如何解决不同的信号处理函数的保存和恢复?如何处理在调用mysleep之前就存在的未决的SIGALRM信号?如何...

Global site tag (gtag.js) - Google Analytics