在日常开发过程中为了减少与后台服务器的交互次数,大部分的功能都会放到前台使用JS来完成。

例如:一个表中有ID(FOCUS_SEQ)和Name(COLUMNCTRL)两个字段,其中ID是自定义连续增长的数字,Name是不同的字符串,表中的数据假设就只有八条,不会新增也不会删除。类似如下;

现在要写一个方法,方法的功能:要求输入一个Name的值并返回这个Name对应下一个Name的值:

要实现这个方法的思路是要将输入的Name值作为参数在这个表中查询出对应的ID,再将ID+1作为参数在这个表查询出对应的Name的值;

SQL: select Name from Table_Name where ID=(select ID from Table_Namewhere Name=@Name)+1

这个思路看似是实现了方法,但是写在后台每次执行方法的时候都会执行这句SQL语句与服务器数据库进行交互加大了服务器的压力并且也会造成页面刷新给用户带来不好的体验。

若在前台JS端使用AJAX调用一般处理程序是解决了会刷新页面的问题,但是每次调用的时候还是会执行SQL语句与数据库进行交互。

那么既然表中的ID是自定义连续增长的数字,数据也不会轻易的修改那能否在第一次执行这个方法的时候就将这张表中的数据全部查询出来保存在页面中,在后续再次调用方法时就不用从数据库中查询了,直接从保存的数据中获取到下一个Name的值?

SQL:select Name from Table_Name Order by ID(将数据根据ID进行排序全部查询带出)

依照这个思路,我将数据在第一次调用方法时就全部查询出来并绑定到页面上的一个GridView中(可以将GridView控件在页面中隐藏,仅保存数据使用)

那么就要使用JS代码来遍历GridView中的数据来与传入的Name值判断是否相等,若相等则在GridView中的Rows+1就是下一个Name的值。

//传入Name的值遍历GropView匹配获取下一个Name的值
function EnterScalar(COLUMNCTRL) {
var gdview = document.getElementById("GV_List");
if (gdview != null) {
for (var i = 1; i < gdview.rows.length; i++) { //遍历Table中的所有ROW
for (var j = 0; j < gdview.rows[i].cells.length; j++) { //遍历ROW的每一列
if (gdview.rows[i].cells[j].innerText == COLUMNCTRL) { //判断是否相等
alert(gdview.rows[i + 1].cells[j].innerText);
};
}
}
}
}

这样就完美的解决了程序与后台服务器和数据库交互次数过多以及页面会刷新的问题了。我可真是个小机灵哈哈哈~

最新文章

  1. MySQL 日期、时间转换函数
  2. python列表副本
  3. FreeMark学习(三)
  4. CTSC2015 酱油记
  5. HighCharts之2D柱状图
  6. Android 在安装完成界面,点击打开应用程序。在应用程序点击home键,再从桌面打开程序导致产生多个实例或者说程序被重复打开
  7. HDU 5791 Two (DP)
  8. 经历:sybase的sql查询,当传递的参数中包含全角空格(\u00a0),查询慢
  9. sql--关于exec和sp_execute
  10. BSGS_Baby steps giant steps算法
  11. IOS开发缓存机制之—本地缓存机制
  12. [转载] Linux内存管理之mmap详解
  13. pythn print格式化输出---------&quot;%s 和 % d&quot; 都是什么意思?
  14. 6个项目带你全面掌握Laravel框架
  15. Kafka启动报错 : ERROR Processor got uncaught exception
  16. 深入理解JavaScript原型:prototype,__proto__和constructor
  17. Android--UI之ScrollView
  18. Idea调试
  19. thymeleaf 格式化时间
  20. Cheatsheet: 2018 05.01 ~ 07.31

热门文章

  1. Python小程序 -- 人民币小写转大写辅助工具
  2. Windows核心编程 第十五章 在应用程序中使用虚拟内存
  3. 【.Net Core】分析.net core在linux下内存占用过高问题
  4. JS阻止冒泡事件
  5. (数据科学学习手札121)Python+Dash快速web应用开发——项目结构篇
  6. liunx磁盘挂载操作
  7. C++ primer plus读书笔记——第10章 对象和类
  8. python介绍,计算机核心基础,与运行程序有关的三大核心硬件,操作系统
  9. [bug] redis-cli连接时出现Could not connect to Redis at 127.0.0.1:6379: Connection refused
  10. 使用CSS样式的三种方法