前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ajax与jQuery异步加载数据

Ajax与jQuery异步加载数据

作者头像
里克贝斯
发布2021-05-21 10:44:51
10.9K0
发布2021-05-21 10:44:51
举报
文章被收录于专栏:图灵技术域

简介

一次性从服务器数据库中读取数据并传送到前端页面上是不现实的,一方面会加重服务器的压力,另一方面客户的带宽资源也会被占用。Ajax刚好可以解决数据异步加载的问题。Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。

由于用 jQuery 实现 ajax 比较简单,因此接下来的代码引用jQuery库实现Ajax,另外使用Django作为框架。

其中jQuery可以手动下载放到本地文件夹中,也可以引用下面的语句。

XHTML

1

<script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>

HTML语句

类别为demo的div将展示Ajax数据

(document).ready(function(){})指页面其他元素加载完成后开始加载Ajax数据,此时,浏览器不会有加载条和转圈的情况出现。当然也可以改为点击某个元素加载例如 (‘#demo’).click(function(){})。

.getJSON(‘/ajax_server/’,function(ret)指从Django的view.py中的函数ajax_server读取JSON数据,数据通过 (‘#demo’).append(ret)展示到div中。也可以使用document.getElementById(“demo”).innerHTML = ret;来展示数据。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<body>

<div class = "demo"></div>
 
<script src="https://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
    $(document).ready(function(){
      $.getJSON('/ajax_server/',function(ret){
            $('#demo').append(ret)
      })
    });
</script>
</body>
</html>

view.py(Django)

添加

Python

代码语言:javascript
复制
def ajax_server(request):
    data_dict = {'xxx': 'omegaxyz.com', 'yyy': 'zzz'}
    return JsonResponse(data_dict)

urls.py(Django)

添加

Python

代码语言:javascript
复制
url(r'^ajax_server/$', 'tools.views.ajax_server', name='ajax_server'),

缺陷

对应用Ajax最主要的批评就是,它可能破坏浏览器的后退与加入收藏书签功能。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的可能差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。不过开发者已想出了种种办法来解决这个问题,HTML5之前的方法大多是在用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态)。

相关文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • HTML语句
  • view.py(Django)
  • urls.py(Django)
  • 缺陷
    • 相关文章
    相关产品与服务
    灰盒安全测试
    腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档