电子站牌项目知识点汇总

电子站牌项目知识点汇总

1.时间修改格式以及渲染

//时间
function mytime() {
    var date = new Date();
    var rt = formatDate(date, 'yyyy年MM月dd日 hh:mm:ss')
    document.getElementById("time1").innerHTML = rt;
}

/**
格式化时间显示方式、用法:format="yyyy-MM-dd hh:mm:ss";
*/
function formatDate(v, format) {
    if (!v) return "";
    var d = v;
    if (typeof v === 'string') {
        if (v.indexOf("/Date(") > -1)
            d = new Date(parseInt(v.replace("/Date(", "").replace(")/", ""), 10));
        else
            d = new Date(Date.parse(v.replace(/-/g, "/").replace("T", " ").split(".")[0]));//.split(".")[0] 用来处理出现毫秒的情况,截取掉.xxx,否则会出错
    }
    var o = {
        "M+": d.getMonth() + 1,  //month
        "d+": d.getDate(),       //day
        "h+": d.getHours(),      //hour
        "m+": d.getMinutes(),    //minute
        "s+": d.getSeconds(),    //second
        "q+": Math.floor((d.getMonth() + 3) / 3),  //quarter
        "S": d.getMilliseconds() //millisecond
    };
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
};

2.接入后端数据

先理理同步和异步的概念和区别

同步:同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、代码执行。

异步:异步加载又叫非阻塞,浏览器在下载执行 js 同时,还会继续进行后续页面的处理。

通俗一点来说就是:ajax同步的话,则要等这个ajax请求有了返回值才会继续执行下面的代码。
异步则这个AJAX代码运行中的时候其他代码一样可以运行。

刚开始用的是异步加载,渲染页面的函数执行时无数据,每次都要刷新一次页面才能正常显示,异步加载这边好多搞不懂,最后没办法就改成同步加载,还有返回值这边也纠结了好久,不知道怎么返回,最后查阅资料让它先存下来,再返回给函数。

function reload2() {
    var station;
    var parm = { action: 'statios', strkey1: 'GetLineInfoBySite', strkey2: strA };
    $.ajaxSettings.async = false;
    $.get("ashx/BusDataHandler.ashx", parm, function (databus) {
        window.sessionStorage.setItem("test", JSON.stringify(databus));  //保存数据
    }, "json");
    station = JSON.parse(window.sessionStorage.getItem("test"));  //读取数据
    return station;
};

(1)一般Jquery默认为异步加载,

$.ajaxSettings.async = false;  //这段代码是将异步改成同步

(2)Window sessionStorage 属性

保存数据语法:

sessionStorage.setItem("key", "value");

读取数据语法:

var lastname = sessionStorage.getItem("key");

删除指定键的数据语法:

sessionStorage.removeItem("key");

删除所有数据:

sessionStorage.clear();

3.自动翻页函数

function initBusLine() {
    var busSite = reload1();
    var busLine = reload2();
    //判断busLine是否为空
    if (!!busLine) {
        pages = Math.ceil(busLine.length / 4);
        pageContent = [];
        $.each(busLine, function (i, val) {
            var html = "";
            var line = val;
            var LineID = line.LineID;
            var bus_num = 0;
            var bus_html = '<div class="text3">';
            for (var i in busSite.LineList) {
                if (!!busSite.LineList[i] && busSite.LineList[i].LineID == LineID) {
                    bus_num = busSite.LineList[i].m_NearCarList.length;
                    if (bus_num == 0) {
                        bus_html += '<div>无营运车辆</div>';
                    } else {
                        bus_html += '<div>' + (busSite.LineList[i].m_NearCarList[0].Site_Time == "0分" ? ' <font color="red">即将到站 </font>' : "距离本站:" + busSite.LineList[i].m_NearCarList[0].Site_Time) + '</div>';
                    }
                    break
                }
            }
            bus_html += '</div>';
            bus_hm = '<div class="li-center"></div><div class="li-bottom">';
            $.each(line.SiteList, function (t, bus) {
                bus_hm += '<span>' + (bus.SiteName == strC ? ' <font color="red">' + bus.SiteName + '</font>' : bus.SiteName) + '</span>';
            });
            bus_hm += '</div>';
            html += '<div class="li-top"><div class="text1"><span class="run">' + (line.LineName == null ? 'X' : line.LineName + "路") + '</span><img class="imgage" src="image/zhi.png"><img class="imgage" src="image/wei.png"><img class="imgage" src="image/ka.png"><p class="time">' + line.strRunTime + '</p></div><div class="text2">' + (line.EndStation +"方向")+'</div>';
            html += bus_html;
            html += '</div>';
            html += bus_hm;
            pageContent[i] = '<li>' + html + '</li>';
        });
        shuaping(); //自动翻页函数
    }
}

//自动翻页函数(每次四个)
var pages = 0;
var pages_number = 0;
var pageContent = [];
function shuaping() {
    $("#lines").empty();
    for (var s = pages_number * 4; s < (pages_number * 4 + 4); s++) {
        if (s < pageContent.length) {
            $("#lines").append(pageContent[s]);
        }
    }
    console.log("pages"+pages +"pages_number"+pages_number);
    if (pages_number < pages - 1) {
        pages_number++;
    } else {
        pages_number = 0;
    }
};

注意:自动翻页函数是套在上面函数的,所以在执行时,只需执行上面的函数就行,下面翻页函数会跟着执行。还有同时传入两个接口的数据放在一个div里面的,需要字符串拼接。

4.定时刷新

setInterval('函数名()', 时间);

总结就这么多吧,感觉自己太菜了,如果有大神看见里面可以优化的或者改的,可以在评论下方讲讲,让我借鉴借鉴!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值