溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

django+echarts+ajax異步+顯示優(yōu)化--基本例子

發(fā)布時間:2020-07-23 18:33:16 來源:網(wǎng)絡(luò) 閱讀:7313 作者:295631788 欄目:開發(fā)技術(shù)

django+echarts+ajax異步+顯示優(yōu)化--基本例子

<div   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: '機(jī)柜總數(shù)'
            },
            tooltip: {},
            legend: {
                data:['總數(shù)']
            },
            xAxis: {
                data: {{ name  | safe }}    ##第一次訪問頁面時,先從后端返回一個最新的數(shù)據(jù),這樣子就不會需要人們等著更新數(shù)據(jù)。
            },
            yAxis: {},
            series: [{
                name: '銷量',
                type: 'bar',
                data: {{ jq | safe }} ##第一次訪問頁面時,先從后端返回一個最新的數(shù)據(jù)
            }]
        };
        myChart.setOption(option, true);

{#        myChart.showLoading();#}   ## echarts 的顯示加載頁面
        setInterval( function () {     ##AJAX去獲取數(shù)據(jù)通過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();      ##根據(jù)頁面大小重新定義圖形大小
        };
    });

</script>



@login_required(login_url="/login.html")
def show(request):  ## 展示         第一次訪問返回一個數(shù)據(jù)         
    name_id = models.JiguiInfo.objects.filter(id__gt=0)
    name = []
    jq = []
    for i 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返回數(shù)據(jù)
    name_id = models.JiguiInfo.objects.filter(id__gt=0)
    name = []
    jq = []
    for i in name_id:
        name.append(i.name)
        jq.append(i.jq)
    
    ret={'name':name,'jq':jq}
    return  HttpResponse(json.dumps(ret))



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI