以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动静结合的页面不自动加载数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122046)

--  作者:mmd888
--  发布时间:2018/7/18 0:22:00
--  动静结合的页面不自动加载数据
我采取的是用已经做好的静态网页,然后通过AJAX函数,从台获取数据显示在对应的位置,通过window.onload=function()事件来加载,  但是总是会出现 数据加载不出来的情况,每次都要刷新一次或者多次才能显示出来。

我的代码可以简单的描述如下:

\'静态网页部分:
<!DOCTYPE html>
<!-- saved from url=(0053)pdhistory.html -->
<html class="sb-init">
<head><meta http-equiv="Content-Type" c>
    <title>测试</title>
 <link href="./lib/cust.css" rel="stylesheet">
</head>
<body style="overflow: visible;" class="">
\'......页面的其他静态显示类容部分

<div id="div1">  </div> \'  ...需要动态加载的数据
<script>
window.onload=function(){
var regval=new Object();
regval.username = username;  
regval.shoose="detail"
var result = sendAjaxJSON(regval, "/PluginView/detail.html","",false);
var brobj = JSON.parse(result)
document.getElementById("div1").innerHTML =brobj.pigval
}
</script>

</body></html>


为啥用这种方式做的,他有时候打开的时候其他框架都能正常加载,就是数据部分有时候加载不出来,非要刷新之后才能出来,还有就是比如我在这个页面中点击了其他的连接之后。再后退回来 也是只剩下静态框架了,数据显示不出来,刷新之后能正常显示。


--  作者:有点甜
--  发布时间:2018/7/18 9:38:00
--  

1、你这个页面单纯是自己的html代码吗?有没有用到weui的框架?如果用了,onload事件会冲突,要用另外的方式绑定事件;

 

2、在你onload事件那里,加入alert看能否弹出值,执行到哪里出错;同时httprequest加入msgbox,看请求是否被响应;

 

3、打开浏览器的调试器(F12),看是否报什么错。


--  作者:mmd888
--  发布时间:2018/7/18 18:33:00
--  
这个页面 并没有用weui框架,他不会报错,只是需要刷新一次,或者多次才能正常加载数据。


--  作者:mmd888
--  发布时间:2018/7/18 19:52:00
--  
对了,我为了使用ajax函数,也引入了weui.me.js  ,会不会是因为这里面的onload和html相冲突了,


有没有什么好的办法能解决此问题呢

--  作者:有点甜
--  发布时间:2018/7/18 20:59:00
--  
以下是引用mmd888在2018/7/18 19:52:00的发言:

 
有没有什么好的办法能解决此问题呢

 

下面代码,弹出什么?如果result获取不正确,说明是你后台httprequest事件有问题。

 

    window.onload=function(){

alert(1);
    var regval=new Object();
    regval.username = username; 
    regval.shoose="detail"

alert(2)
    var result = sendAjaxJSON(regval, "/PluginView/detail.html","",false);     

alert(3)

alert(result)
    var brobj = JSON.parse(result)
    document.getElementById("div1").innerHTML =brobj.pigval   

alert(brobj.pigval)
    }

 


--  作者:mmd888
--  发布时间:2018/7/18 22:06:00
--  
老师,我想表达的意思是,他这个是时灵时不灵的,我测试都能正常显示出来的,整个网页都能正常显示,

问题是有时候 他就只加载框架部分,而不加载ajax获取的数据部分,特别在苹果手机表现比较明显。但是经过多次刷新之后他还是能加载出来。。。

--  作者:有点甜
--  发布时间:2018/7/18 22:16:00
--  

试试在你 weui.me.js 加入这段代码

 

    pushHistory();
    function pushHistory() {
        window.addEventListener("popstate", function(e) {
            //alert("后退");
            self.location.reload();
        }, false);
        var state = {
            title : "",
            url : "#"
        };
        window.history.replaceState(state, "", "#");
    };

 

然后,你是把每次得到的result,判断一下是不是正常的结果,如果是空值或不正常,那就再获取一次。


--  作者:有点甜
--  发布时间:2018/7/18 22:16:00
--  
没有实例我们无法测试你的问题。
--  作者:mmd888
--  发布时间:2018/7/20 11:32:00
--  
老师,我现在发现是本地测试没问题,但是放在服务器上就不行了。。。。
--  作者:有点甜
--  发布时间:2018/7/20 12:00:00
--  
以下是引用mmd888在2018/7/20 11:32:00的发言:
老师,我现在发现是本地测试没问题,但是放在服务器上就不行了。。。。

 

在服务器上测试的时候,alert和msgbox弹出是否正常?用电脑浏览器测试是否正常?如果电脑浏览器不正常,看看调试器那里报什么错。