django+echarts+ajax异步+显示优化--基本例子

简介:

django+echarts+ajax异步+显示优化--基本例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
< div    style = "height:300px;" id = "echarts-line" ></ div >
 
##定义要显示的地方
 
 
< script  src = "/static/js/echarts.min.js" ></ script
#加载js
 
< script >
     $(function () {
         var server_info;
 
         var myChart = echarts.init(document.getElementById('echarts-line'));
         var option = {
             title: {
                 text: '机柜总数'
             },
             tooltip: {},
             legend: {
                 data:['总数']
             },
             xAxis: {
                 data: {{ name  | safe }}    ##第一次访问页面时,先从后端返回一个最新的数据,这样子就不会需要人们等着更新数据。
             },
             yAxis: {},
             series: [{
                 name: '销量',
                 type: 'bar',
                 data: {{ jq | safe }} ##第一次访问页面时,先从后端返回一个最新的数据
             }]
         };
         myChart.setOption(option, true);
 
{#        myChart.showLoading();#}   ## echarts 的显示加载页面
         setInterval( function () {     ##AJAX去获取数据通过showapi
 
                 $.ajax({
                     type: 'GET',
                     url: '/jigui/showapi',
                     dataType: 'json',
                     success: function (json) {
                         server_info = eval(json);
                     }
                 });
 
                     option.xAxis.data =  server_info.name;   ##赋值
                     option.series[0].data = server_info.jq;
{#                    myChart.hideLoading();#}   ## echarts 的隐藏加载页面
                     myChart.setOption(option, true);
 
                 }, 2000);  ##每隔2秒 获取一次,重新生成值
 
          window.onresize = function () {
             myChart.resize();      ##根据页面大小重新定义图形大小
         };
     });
 
</ script >



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@login_required (login_url = "/login.html" )
def  show(request):   ## 展示         第一次访问返回一个数据         
     name_id  =  models.JiguiInfo.objects. filter (id__gt = 0 )
     name  =  []
     jq  =  []
     for  in  name_id:
         name.append(i.name)
         jq.append(i.jq)
     
     ret  =  { 'name' : name,  'jq' : jq}
     
     return  render(request,  'jigui/show.html' ,{ 'name' :name, 'jq' :jq})
 
 
@login_required (login_url = "/login.html" )
def  showapi(request):   ## 展示    API返回数据
     name_id  =  models.JiguiInfo.objects. filter (id__gt = 0 )
     name  =  []
     jq  =  []
     for  in  name_id:
         name.append(i.name)
         jq.append(i.jq)
     
     ret = { 'name' :name, 'jq' :jq}
     return   HttpResponse(json.dumps(ret))









本文转自 295631788 51CTO博客,原文链接:http://blog.51cto.com/hequan/1954409,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
消息中间件 存储 监控
Django后端架构开发:Celery异步调优,任务队列和调度
Django后端架构开发:Celery异步调优,任务队列和调度
53 1
|
2月前
|
存储 JavaScript 前端开发
关于Django使用Jquery异步刷新
使用Django与jQuery结合实现异步刷新功能,不仅可以提升用户体验,还能提高应用的性能。通过上述的步骤,你可以在自己的Django项目中实现类似的异步数据更新功能。这种技术的关键是理解AJAX的工作原理,以及如何在Django后端创建响应AJAX请求的视图。通过实践这些技巧,你将能够创建更为动态和交互式的Web应用。
24 2
|
2月前
|
存储 JavaScript 前端开发
关于Django使用Jquery异步刷新
请记住,为了安全性,你可能需要考虑在处理AJAX请求时验证用户身份和权限,以及对输入进行适当的清理和验证,以防止安全漏洞。
17 0
|
4月前
|
前端开发 Python
Django框架中Ajax GET与POST请求的实战应用
Django框架中Ajax GET与POST请求的实战应用
|
3月前
echarts 提示框异步获取数据 —— formatter 异步回调函数的使用
echarts 提示框异步获取数据 —— formatter 异步回调函数的使用
95 0
|
4月前
|
JSON 前端开发 JavaScript
Django——Ajax请求
Django——Ajax请求
|
5月前
|
消息中间件 监控 数据库
Django的异步任务处理:提升应用响应速度与性能
【4月更文挑战第15天】Django通过集成Celery实现异步任务处理,提升Web应用性能和响应速度。异步处理用于耗时操作如数据库操作、邮件发送。基本步骤包括安装配置Celery、创建任务、在视图中调用任务并启动worker。应用场景包括发送通知、处理复杂逻辑和数据导入导出。注意任务原子性、优先级设置和任务执行监控。
|
5月前
|
缓存 中间件 API
使用 Django 的异步特性提升 I/O 类操作的性能
使用 Django 的异步特性提升 I/O 类操作的性能
161 0
|
5月前
|
JSON 前端开发 JavaScript
探秘 AJAX:让网页变得更智能的异步技术(下)
探秘 AJAX:让网页变得更智能的异步技术(下)
探秘 AJAX:让网页变得更智能的异步技术(下)
|
5月前
|
XML 前端开发 JavaScript
探秘 AJAX:让网页变得更智能的异步技术(上)
探秘 AJAX:让网页变得更智能的异步技术(上)
探秘 AJAX:让网页变得更智能的异步技术(上)