1、解决了一个BUG
2、了解了SQL的join
3、SQL的GROUP报错的问题。
1、解决BUG
- bug描述
JQM调用highcharts插件。AJAX请求到数据后,第一次点击查询按钮获得正确的图表。使用浏览器的上一页/手机上的返回键 修改时间参数后,图表不变。
- bug分析过程
- 请求失败?
chrome+VisualStudio调试。WebService调用成功,返回json并读取成功,应用到图表成功。图表显示正常 - 页面缓存?
强制关闭页面缓存,无效。 - 页面的跳转机制?
JQM的页面设置:
data-role=”page” 是显示在浏览器中的页面
在 jQuery Mobile,您可以在单一 HTML 文件中创建多个页面。
请通过唯一的 id 来分隔每张页面,并使用 href 属性来连接彼此
<div data-role="page" id="pageone">
<div data-role="content">
<a href="#pagetwo">转到页面二</a>
</div>
</div>
<div data-role="page" id="pagetwo">
<div data-role="content">
<a href="#pageone">转到页面一</a>
</div>
</div>
问题是不是出在这里?我在点击按钮时执行Searchs(),只是在页面内进行了跳转,并没有完成一个新的请求。也就是数据并没有更新!
function Searchs() {
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;
location.href = "#List";
firstShow = false;
$("List", function () {
$.ajax({····}
查看文档,找JQM页面跳转的事件 。
JQM页面跳转的时间捕捉–W3CSchool
1、jQuery Mobile Load 事件
页面加载事件属于外部页面。
无论外部页面何时载入 DOM,将触发两个事件。第一个是 pagebeforeload,第二个是 pageload (成功)或 pageloadfailed(失败)。
2、jQuery Mobile 过渡事件
我们还可以在从一页过渡到下一页时使用事件。适用于内部页面
我们使用过渡事件的PageShow()完成数据更新。
事件 | 描述 |
---|---|
pagebeforeshow | 在“去的”页面触发,在过渡动画开始前。 |
pageshow | 在“去的”页面触发,在过渡动画完成后。 |
pagebeforehide | 在“来的”页面触发,在过渡动画开始前。 |
pagehide | 在“来的”页面触发,在过渡动画完成后。 |
加入代码后出现问题。每次一开始执行方法,就会循环触发刷新页面请求。所以加入标识位来标识是否是第一次进入搜索页面。
var firstShow = true;
$(document).on("pageshow", "#Search", function () { // 当进入搜索页面时如果非首次加载则刷新
if (firstShow==false)
location.reload([true]);
firstShow = true;
});//在下面location.href("#List")后加上firstShow=false,表示只要重定向至结果显示页面,搜索页面就不是首次加载。
“`