2017.4.6 开发日记

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,表示只要重定向至结果显示页面,搜索页面就不是首次加载。

“`

至此,BUG解决完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值