日期:2014-05-17  浏览次数:20394 次

ajax

刚开始用ajax,百度百科上说,要用到httpxml的东西
但是我在看别人的例子中,就是用了一下js,然后再后台判断了下Request.IsAjaxRequest,没有用到xml啊?



客户端:
<script type="text/javascript">
    $(function () { 
        window.setTimeout(function () { $.post('@Url.Action("UpdateHit", "Articles")', { _id: "@Model.CurrentArticle.Id" }); }, 5000);
    });
</script>

服务器端:
        [HttpPost]
        public ActionResult UpdateHit()
        {
            int id;
            if (int.TryParse(Request.Form["_id"], out id) && Request.IsAjaxRequest())
            {
                var uri = Request.UrlReferrer;
                var url = Request.Url;
                if (uri != null && url != null && uri.Host == url.Host)
            ArticlesDal.UpdateTimesViewed(id);
            }
            return  null;
        }



------解决方案--------------------
XMLHttpRequest,就用这个对象就可以了,也可以请求返回xml数据。使用方式不同而已。
------解决方案--------------------
 window.setTimeout(function () { $.post('@Url.Action("UpdateHit", "Articles")', { _id: "@Model.CurrentArticle.Id" }); }, 5000);

这里的$.post是什么,知道吗?这不是JS天然就有的,而是自定义的函数,在这个函数里面就已经包含了对XMLHttpRequest的封装,而且对各种浏览器做了兼容处理。
使用现成的工具会比较有效率,但也要把工作原理搞清楚。