for Window

github: https://github.com/laixiangran/commonJS/blob/master/src/forWindow.js

代码

/*** Created by laixiangran on 2016/1/24* homepage:http://www.cnblogs.com/laixiangran/* for Window*/
(function() {var com = window.COM = window.COM || {};com.$W = {/*** 在window.onload前执行,相当于jq的ready()* 使用domReady.ready()将执行函数加入队列中**/domReady: (function() {// 用于添加要执行的函数var domReady = function() {var fnArr = Array.prototype.slice.call(arguments);// 页面如果加载完毕则直接运行if (domReady.isReady) {fnArr.forEach(function(fn) {fn();});}else {domReady.fns = fnArr;}};// 用于判定页面是否加载完毕domReady.isReady = false;domReady.fns = [];// 执行所有在window.onload之前放入的函数domReady.fireReady = function() {if (!domReady.isReady) {if (!document.body) {return setTimeout(domReady.fireReady, 16);}domReady.isReady = true;if (domReady.fns.length) {domReady.fns.forEach(function(fn) {fn();});}}};// 开始初始化domReady函数,判定页面的加载情况if (document.readyState === "complete") {domReady.fireReady();} else if (-[1,]) {document.addEventListener("DOMContentLoaded", function() {document.removeEventListener("DOMContentLoaded", arguments.callee, false);domReady.fireReady();}, false);} else {// 当页面包含图片时,onreadystatechange事件会触发在window.onload之后,// 换言之,它只能正确地执行于页面不包含二进制资源或非常少或者被缓存时document.attachEvent("onreadystatechange", function() {if (document.readyState == "complete") {document.detachEvent("onreadystatechange", arguments.callee);domReady.fireReady();}});(function(){if (domReady.isReady) {return;}// doScroll存在于所有标签而不管其是否支持滚动条// 这里如果用document.documentElement.doScroll(),我们需要判定其是否位于顶层documentvar node = new Image();try {node.doScroll();node = null; // 防止IE内存泄漏}catch (e) {// javascrpt最短时钟间隔为16ms,这里取其倍数setTimeout(arguments.callee, 64);return;}domReady.fireReady();})();}return domReady;}()),/*** requestAnimationFrame兼容性扩展,两方面工作:* 1、把各浏览器前缀进行统一* 2、在浏览器没有requestAnimationFrame方法时将其指向setTimeout方法* */requestAnimationFrame: (function() {var func = null;var lastTime = 0;var vendors = ["webkit", "moz"];for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {func = window[vendors[x] + "RequestAnimationFrame"];}if (!func) {func = function(callback, element) {var currTime = new Date().getTime();var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));var id = window.setTimeout(function() {callback(currTime + timeToCall);}, timeToCall);lastTime = currTime + timeToCall;return id;};}return func;}()),// 取消AnimationFramecancelAnimationFrame: (function() {var func = null;var vendors = ["webkit", "moz"];for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {// Webkit中此取消方法的名字变了window.cancelAnimationFrame = window[vendors[x] + "CancelAnimationFrame"] || window[vendors[x] + "CancelRequestAnimationFrame"];}if (!func) {func = function(id) {window.clearTimeout(id);};}return func;}())};
}());

参考

http://www.cnblogs.com/cloudgamer/

转载于:https://www.cnblogs.com/laixiangran/p/5174847.html

commonJS — 全局操作(for Window)相关推荐

  1. 内网穿透工具(永久免费、永不限速、开源)、一键启动、页面操作(支持window,mac),自定义二级域名

    java 内网穿透工具(net-penetrate).永久免费.永不限速.开源.一键启动.页面操作(支持window,mac),自定义二级域名 介绍 完全开源,免费使用,不会有人窃取你的信息(可看源码 ...

  2. commonJS — DOM操作(for DOM)

    for DOM github: https://github.com/laixiangran/commonJS/blob/master/src/forDOM.js 代码 /*** Created by ...

  3. 判断域名来源的操作【window.location.host.indexOf(‘域名关键词‘)】 - 代码篇

    文章目录 判断域名来源的操作 - 代码篇 代码如下: 判断域名来源的操作 - 代码篇 代码如下: // 判断域名的操作:如果域名是qblog 或qdownload,则为true: var flagBo ...

  4. commonJS — 数字操作(for Number)

    for Number github: https://github.com/laixiangran/commonJS/blob/master/src/forNumber.js 代码 /*** Crea ...

  5. JS学习之全局函数与window对象

    学习峰哥Js教程自学笔记,峰哥Java学习路线:http://www.java1234.com/javaxuexiluxiantu.html 1.全局函数: 1)概念:全局函数不属于任何一个内置对象. ...

  6. 2021年大数据Flink(十八):Flink Window操作

    目录 ​​​​​​​Flink-Window操作 为什么需要Window Window的分类 按照time和count分类 ​​​​​​​按照slide和size分类 ​​​​​​​总结 Window ...

  7. Flink window 用法介绍

    Sink Flink没有类似spark中foreach方法 让用户进行迭代操作 虽有对外的输出操作 都要利用Sink完成 最后通过类似如下方式完成整个任务最终输出操作 stream.addSink(n ...

  8. popstate_详解HTML5之pushstate、popstate操作history,无刷新改变当前url

    一.认识window.history window.history表示window对象的历史记录,是由用户主动产生,并且接受javascript脚本控制的全局对象.window对象通过history对 ...

  9. 大数据——Flink Window(窗口)机制

    Flink窗口机制 Window(窗口) Tumbling Window(翻滚窗口) Sliding Window(滑动窗口) Sliding Window(滑动窗口)设置Watermark时间 Wi ...

最新文章

  1. java独立承担,Java使用独立文件服务器
  2. C#二叉树遍历算法实现浅析
  3. SSH配置优化和慢的解决方法
  4. 内核级HOOK的几种实现与应用
  5. vue中实现双向数据绑定原理,使用了Object.defineproperty()方法,方法简单
  6. ABAP 动态 SQL
  7. Java 文件压缩与解压缩
  8. Cucumber入门之_argument
  9. QT实现图像处理-傅立叶变换、傅立叶反变换、平滑、锐化与模板匹配
  10. Redis配置文件常用配置消息解说--版本5.0.9
  11. php链接本地mysql数据库配置文件_php连接 mysql 数据库如何添加一个公共的配置文件...
  12. 【转】elasticsearch的查询器query与过滤器filter的区别
  13. 求教:.Net Framework 3.5 SP1安装失败
  14. 一位挪威博士的PolarDB资深架构师之路
  15. 微信发红包的测试用例
  16. 大理大学 计算机研究生分数线,大理大学2018年研究生复试分数线
  17. 相对论学习入门资料集
  18. xposed模块编写教程_太极xposed模块使用教程
  19. Opencv+ZBar识别条形码、二维码
  20. 大数据培训:生活中这些场景都用到了大数据

热门文章

  1. 如何debug函数_如何使用 pdb 来性感 debug 你的 Python 代码?
  2. 阻止JavaScript事件冒泡到父元素
  3. eclipse 设置workspace编码格式
  4. eclipse 面包屑开关 / 查看class再哪个jar中
  5. python random库下载_python基础 — random库
  6. oracle查找异常中断的sqlid方法,Oracle查找锁定对象以及强制解除锁定的方法
  7. 事实表和维度表是怎么造数据_从电商数据指标到电商数据中台
  8. docker 内部ping不通宿主机_Docker容器数据管理
  9. java getIV_Java SAP CRM get_children 方法里面参数 iv_as_copy 有什么用? _好机友
  10. spark-sql执行时报错: