想要在jgGrid每次查询和翻页的时候可以在pager的位置显示查询用时,查询时间。但是看了jgGrid的属性和方法中没有这个功能,那么就看看jgGrid源码中,如何添加显示查询用时吧。注意到其中的两个方法beginReq和endReq。beginReq是在获取数据的开始时调用的,endReq是在获取数据结束时调用的。那么就可以在这两个方法中写显示查询用时的功能。

1 .添加自定义按钮

用navButtonAdd在pager中添加添加自定义按钮。这里有一个技巧,添加的内容不一定是文本,也可以添加HTML内容。这里添加了两个span标签,其中显示查询用时的标签设置一个class,方便后面找到这个DOM。navButtonAdd的用法这里就不赘述了,应该都搜得到。
 $(tableName).jqGrid('navButtonAdd', pageName, {caption: "<span>查询用时:</span><span class='query-time'>00:00:00</span>",buttonicon: "ui-icon-calculator",});


2.修改jquery.jqGrid.js

修改部分
     beginReq = function() {ts.grid.hDiv.loading = true;if(ts.p.hiddengrid) { return;}$(ts).jqGrid("progressBar", {method:"show", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, "defaults.loadtext", ts.p.loadtext) });var $timer=$(ts.p.pager).find('.query-time')||{};ts.loadTime = (new Date()).getTime();if(typeof beginTimer==='function')beginTimer($timer,ts.id);},endReq = function() {ts.grid.hDiv.loading = false;$(ts).jqGrid("progressBar", {method:"hide", loadtype : ts.p.loadui });var $timer=$(ts.p.pager).find('.query-time') || {};$timer.loadTime =(new Date()).getTime() - ts.loadTime ;if(typeof beginTimer==='function')endTimer($timer,ts.id);},

3.设置定时器

用setInterval,每过一毫秒就修改一次查询用时的显示,让数据显示动态更新。查询完成的时候要清除定时器。但是这里要注意一点,setInterval进行倒数,计时等功能,往往是不准确的,因为setInterval的回调函数并不是到时后立即执行,而是等系统计算资源空闲下来后才会执行.而下一次触发时间则是在setInterval回调函数执行完毕之后才开始计时,所以如果setInterval内执行的计算过于耗时,或者有其他耗时任务在执行,setInterval的计时会越来越不准,延迟很厉害。所以用到beginReq和endReq系统时间的差值来修正查询用时。
/*** *created by cc, alter on 2017/11/14* */
/*use to show query time*/var timerObj={};function beginTimer($ele,id){var count=0,minu=0,sec=0,persec=0;$ele.text("00:00:00");var date = new Date();if($ele["length"] > 0){            timerObj[id]=setInterval(function(){count++;persec=count%1000;minu=Math.floor(count/60000);sec=Math.floor(count/1000)-60*minu;if(sec<10)sec='0'+sec;if(minu<10)minu='0'+minu;$ele.text(minu+':'+sec+':'+persec);},1);}}function endTimer($ele,id){if($ele["length"] > 0){     clearInterval(timerObj[id]);}$ele.loadTime = $ele.loadTime || 0;var date  = new Date($ele.loadTime);var min = parseInt(date.getMinutes());var sec = parseInt(date.getSeconds());var milSec = parseInt(date.getMilliseconds());$ele.text((min<10?("0"+min):min)+":"+(sec<10?("0"+sec):sec)+':'+milSec);}

jgGrid扩展 显示查询用时相关推荐

  1. pm2显示查询sql_作为PM液态SQL的技术贡献

    pm2显示查询sql 问题 (The Problem) My startup - One - is a digital challenger bank for the middle class, he ...

  2. 双屏显示器,扩展显示,笔记本清晰,扩展显示屏模糊的解决办法

    双屏显示器,扩展显示,笔记本清晰,扩展显示屏模糊的解决办法 主屏幕分辨率:1920*1080 扩展屏幕分辨率: 1600 *900 使得屏幕显示清楚步骤: 1.将两个显示器的显示设置-缩放布局中的缩放 ...

  3. win10系统下小米线刷显示成功用时为0s

    win10系统下小米线刷显示成功用时为0s 小米6钉子户因耗电问题想把系统线刷为10.3.1,但在开始刷机后发现显示成功但用时为0s,并且手机没有成功重启,,则未刷机成功. 解决方法 在"我 ...

  4. python网页查询然后返回结果_使用pythondjang在html页面上显示查询到的API结果

    我目前正在使用django webframework创建一个python应用程序,它允许用户查询外部API来获取有关食物营养(例如卡路里.脂肪)的信息.目前,当用户在网页上的搜索栏中输入食物时,API ...

  5. mysql第四章分页显示查询出租房屋信息_MYSQL必知必会读书笔记第四章之检索数据...

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显 ...

  6. php mssql扩展SQL查询中文字段名解决方法

    一.问题: 数据库是MS SQLServer2000,要把SQLServer2000里的一张表的数据导入MySQL5,其中SQLServer2000表的字段以简体中文命名(强烈建议不要以中文做为字段名 ...

  7. layui分页只能显示一页数据_分页显示查询数据

    ​查询数据后,将数据分页显示 一.前台页面 Title 查询 顺序号 ID 标题 时间 二.后台代码 protected void Page_Load(object sender, EventArgs ...

  8. mysql文件扩展名查询_如何通过MySQL查询获取文件的文件扩展名?

    为了获得作为SQL查询结果的文件的文件扩展名,可以使用SUBSTRING_INDEX(). 语法如下select substring_index(yourColumnName,'.',-1) as a ...

  9. Win7系统双屏扩展显示时触屏设置

    Win7系统双屏显示设置为扩展模式时,如果其中一个是触屏,会存在触摸位置和响应位置不一致的问题,即在触屏上触摸,在非触屏上响应. 解决方案如下: 1.在控制面板进入"Tablet PC 设置 ...

最新文章

  1. ICLR 2022 || 通过邻域/度/初始特征重建的等图自编码器
  2. 功能表单之树形选择字段类型的高级使用——JEPLUS软件快速开发平台
  3. vSphere Web Client使用指南之安装配置
  4. Android Material Design调色板
  5. 一、博客首页搭建搭建《iVX低代码仿CSDN个人博客制作》
  6. 废物利用--旧手机搭建linux服务器
  7. python stacktrace_pystack--python stack trace--让python打印线程栈信息
  8. WPS格式转换PPT格式小技巧
  9. HashMap里的Node
  10. 笔记本电脑之间建立串口通信
  11. 如何打开Win10启动文件夹?
  12. Angular 5 反向代理配置
  13. Docker - Docker Volume及Volume命令详解
  14. html a text decoration,你未必知道的CSS小知识:text-decoration属性变成了属性简写
  15. 如何使用手机打印资料,手机资料怎么打
  16. input file图片上传(使用OSS Javscrtipt 上传到服务器)以及图片裁剪(cropper.js)
  17. windows安全警报怎么关闭_Windows 开机启动画面,声音等设置
  18. 编写一个求定积分的通用函数
  19. python关于excel格式刷_想用 Numbers 做出漂亮的表格,从这 8 个技巧开始
  20. 重装系统会不会丢失mysql表_MBR转GPT要重装系统吗?不丢失数据 MBR转GPT分区表教程 (全文)...

热门文章

  1. 为什么我不推荐你使用vue-cli创建脚手架?
  2. HP-UX下做磁盘镜像
  3. js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox
  4. 任务调度-java普通工程通过Timer实现
  5. freemarker 模板填充乱码
  6. [开心学php100天]第五天:string函数(上)
  7. 艾伟:C# Design Patterns (1) - Factory Method
  8. BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
  9. JAVA 线程的介绍与使用
  10. java对mysql的简单操作——增加数据