显示的是报告总记录数的响应。
清单 4. 第二个响应:总记录数
- {"total_records": 95}
将这两个 Ajax 请求分开是浪费资源,它们可以合并到一个请求中,并生成以下 的响应。
清单 5. 高效响应:记录总数和数组
- {
- "total_records": 95,
- "records": [
- {"id":1,"name":"John","email":"john@example.com"},
- {"id":2,"name":"Mary","email":"mary@example.com"},
- {"id":3,"name":"Tony","email":"tony@example.com"},
- {"id":4,"name":"Emma","email":"emma@example.com"},
- {"id":5,"name":"Alan","email":"alan@example.com"}
- ]
- }
这样做不仅使所需的 HTTP 请求和响应更少,而且也减少了用于响应 Ajax 请求的服务器端脚本。
本例演示非常简单 — 应用程序越复杂,减少所用的 Ajax 请求数量就越重要。
(适当)使用变量
为了尽量减少代码行,很多开发人员常忽略了变量的使用,很多情况下他们其实能显著提高某段代码的执行速度。例如,在以下代码中,对一个元素应用了多种样式:
清单 6. 对一个元素应用多种样式(低效)
- document.getElementById("myField").style.backgroundColor = "#CCC";
- document.getElementById("myField").style.color = "#FF0000";
- document.getElementById("myField").style.fontWeight = "bold";
以上每行代码中,浏览器都要在 DOM 中搜索 ID 为 myField 的元素。其实无需像这样执行三次,可以通过将document.getElementById("myField") 结果赋给一个变量并在每行使用变量来提高效率。如 所示。
清单 7. 对一个元素应用样式(高效)
- var myField = document.getElementById("myField");
- myField.style.backgroundColor = "#CCC";
- myField.style.color = "#FF0000";
- myField.style.fontWeight = "bold";
另一个应该用变量而没有用的地方是遍历数组的 for 循环。请看 的例子。
清单 8. 用 for 循环遍历数组(低效)
- for(var i=0; i < myArray.length; i++) {
- //do something
- }