ajax前端局部页面刷新

Posted java璀璨小菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax前端局部页面刷新相关的知识,希望对你有一定的参考价值。

1.jsp

       <div class="center-left">
            <div class="center-left-title">
                <%--<span><a href="/kms/knowledgeView/knowledgeDatas.do?type=1" >本月知识浏览前十排行</a></span>--%>
                <%--<span><a href="/kms/knowledgeView/knowledgeDatas.do?type=2">本季度知识浏览</a></span>--%>
                <%--<span><a href="#">半年度知识浏览</a></span>--%>
                <%--<span><a href="/kms/knowledgeView/knowledgeDatas.do?type=4">本年度知识浏览</a></span>--%>
                <span><a id="knowledgeMonth" class="glideLine"  onclick="curMonths(\'1\')">本月知识浏览前十排行</a></span>
                <span><a id="knowledgeQuarter" onclick="curMonths(\'2\')">本季度知识浏览</a></span>
                <span><a id="knowledgeHYear" href="#">半年度知识浏览</a></span>
                <span><a id="knowledgeYear" onclick="curMonths(\'4\')">本年度知识浏览</a></span>
            </div>
            <div class="left-list-title">
                <span>名称</span>
                <p>次数</p>
            </div>
            <div class="center-left-list" id="addhtml">
                <%--<ul>--%>
                    <%--<c:forEach items="${data.list}" var="list">--%>
                    <%--<li>--%>
                        <%--<span title="${list.objname}">--%>
                            <%--<a target="_blank" href="/vdocument/base/docbaseview.jsp?id=${list.id}">--%>
                                <%--${fn:length(list.objname)>55 ? fn:substring(list.objname, 0, 55) : list.objname }--%>
                                <%--${fn:length(list.objname)>55 ? \'...\' : \'\' }--%>
                            <%--</a>--%>
                        <%--</span>--%>
                        <%--<p>${list.num}</p>--%>
                    <%--</li>--%>
                    <%--</c:forEach>--%>
                <%--</ul>--%>
            </div>
        </div>

2.js:定义一个全局让加载页面时加载方法

var reg="1";
$(function () {
    curMonths(reg);
})
function curMonths(reg) {
    console.log(reg)
    if (reg=="1") {
        $(\'#knowledgeMonth\').addClass("glideLine");
        $(\'#knowledgeQuarter\').removeClass("glideLine")
        $(\'#knowledgeHYear\').removeClass("glideLine")
        $(\'#knowledgeYear\').removeClass("glideLine")
    }else if (reg=="2"){
        $(\'#knowledgeMonth\').removeClass("glideLine");
        $(\'#knowledgeQuarter\').addClass("glideLine")
        $(\'#knowledgeHYear\').removeClass("glideLine")
        $(\'#knowledgeYear\').removeClass("glideLine")
    }else if (reg=="3"){
        $(\'#knowledgeMonth\').removeClass("glideLine");
        $(\'#knowledgeQuarter\').removeClass("glideLine")
        $(\'#knowledgeHYear\').addClass("glideLine")
        $(\'#knowledgeYear\').removeClass("glideLine")
    } else {
        $(\'#knowledgeMonth\').removeClass("glideLine");
        $(\'#knowledgeQuarter\').removeClass("glideLine")
        $(\'#knowledgeHYear\').removeClass("glideLine")
        $(\'#knowledgeYear\').addClass("glideLine")
    }

    var insertHtml = "";
    $.ajax({
        url: "/kms/knowledgeView/knowledgeDatas.do",
        type: "POST",
        data: {type: reg},
        dataType: "json",
        success: function (data) {
            var result = data.data.list;
            insertHtml += " <ul>\\n";
            for (var p in result) {
                insertHtml += " <li>\\n" +
                    "                        <span title=\\""+result[p].objname+"\\">\\n" +
                    "                            <a target=\\"_blank\\" href=\\"/vdocument/base/docbaseview.jsp?id=\\""+result[p].objname+"\\">"+result[p].objname+"</a>\\n" +
                    "                        </span>\\n" +
                    "                        <p>"+result[p].num+"</p>\\n" +
                    "                    </li>";
            }
            insertHtml += "</ul>";
            $(\'#addHtml\').html(insertHtml)
        }
    });

3.controller:json返回

/**
     * 知识浏览月前十、季度、半年、年度
     */
    @RequestMapping("/kms/knowledgeView/knowledgeDatas")
    public void knowledgeDatas(HttpServletRequest request, HttpServletResponse response) throws IOException {
        JSONObject jsonObject=new JSONObject();
        PrintWriter writer = response.getWriter();
        KnowledgeSearchVo vo= WebUtils.requestToBean(request,KnowledgeSearchVo.class);
        Map<String,Object> data=knowledgeViewService.knowledgeData(vo);
        jsonObject.put("data",data);
        writer.write(jsonObject.toString());
        System.out.println(">>>>>>>>>>>>>>"+data);
        writer.close();
    }

 

iframe 和ajax局部刷新的区别

iframe局部刷新 和ajax局部刷新都有啥区别,既然iframe能实局部刷新,为什么还要用ajax

参考技术A iframe是一个内联框架,你可以理解为在原有的HTML内多出的一个独立的框架,从刷新这个框架能做到类似“局部刷新”的效果。
而AJAX是一种局部刷新的技术,它本身而言可以针对这个页面所有的元素,而不像iframe那样,只能局部刷新其“圈起来”的部分。
从性能上来说,如果一个页面比较大,对局部刷新比较多的情况下,比如有太多地方都可能需要独立刷新,如果你用N个iframe的话,对系统的性能消耗就比较明显了,直接的结果就是页面加载起来会慢。追问

恩恩,谢谢,还有一个问题,php怎么设置cookie的保存路径,全站都能用

追答

额,我没做过PHP,一般都是JSP,要回答PHP的话,还要1到2天去看文档。。。

本回答被提问者采纳

以上是关于ajax前端局部页面刷新的主要内容,如果未能解决你的问题,请参考以下文章

前端技术--Ajax

ajax怎样从后台获取数据进行局部刷新

如何利用jQuery局部刷新页面中的div元素

微信授权页面执行ajax不执行,刷新才能执行

iframe 和ajax局部刷新的区别

ajax刷新局部页面数据后js事件失效