مجید
3 سال پیش توسط مجید مطرح شد
4 پاسخ

رسم نمودار google chart با ajax

سلام وقت بخیر
من داخل پنل مدیریت صفحه اول (پیشخوان) سامانه ای که طراحی کردم نمودار های مدیریتی وجود دارد که با google chart طراحی کردم ، برای رسم این نمودار ها محاسباتی روی داده های موجود انجام میشه که کمی زمانبر هست
از طرفی وجود این نمودار ها در صفحه پیشخوان الزامی است چطور میتونم زمان لود صفحه را کاهش بدم ؟
آیا از میشه از ajax استفاده کرد و متغیر های داخل اسکریپت رو مقدار داد ؟ اگر امکانش هست لطفا راهنمایی بفرمایید
یا امکانش هست فایل js مربوط به نمودار به طور کلی با ajax فراخوانی بشه ؟
ممنون میشم راهنمایی بفرمایید

<script type="text/javascript">
    google.charts.load('current', {'packages':['corechart', 'bar']});
    google.charts.setOnLoadCallback(drawStuff1);

    function drawStuff1() {

        var button = document.getElementById('change-chart');
        var chartDiv = document.getElementById('chart_div1');

        var data = google.visualization.arrayToDataTable([
            ['', 'مونتاژ','جوش','رنگ','فروش'],
            ['{{ $month[5]}}',  {{$weight_in_month_assemble[5]}},{{$weight_in_month_weld[5]}},{{$weight_in_month_color[5]}}, {{$sale_month[5]}}],
            ['{{ $month[4] }}',  {{$weight_in_month_assemble[4]}},{{$weight_in_month_weld[4]}},{{$weight_in_month_color[4]}}, {{$sale_month[4]}}],
            ['{{ $month[3] }}',  {{$weight_in_month_assemble[3]}},{{$weight_in_month_weld[3]}},{{$weight_in_month_color[3]}}, {{$sale_month[3]}}],
            ['{{ $month[2] }}', {{$weight_in_month_assemble[2]}},{{$weight_in_month_weld[2]}},{{$weight_in_month_color[2]}}, {{$sale_month[2]}}],
            ['{{ $month[1] }}', {{$weight_in_month_assemble[1]}},{{$weight_in_month_weld[1]}},{{$weight_in_month_color[1]}}, {{$sale_month[1]}}],
            ['{{ $month[0] }}', {{$weight_in_month_assemble[0]}},{{$weight_in_month_weld[0]}},{{$weight_in_month_color[0]}}, {{$sale_month[0]}}]
        ]);

        var materialOptions = {
            bar: { groupWidth: "100%"},
            colors: ['#00c0ef','#DD4B39','#F39C12','#00A65A'],

            vAxis:
                {
                    title : '',
                    textStyle:
                        {
                            color: '#454545',
                            fontName: 'Vazir',
                            fontSize: 13
                        }
                },
            hAxis:
                {
                    textStyle:
                        {
                            color: '#454545',
                            fontName: 'Vazir',
                            fontSize: 13
                        }
                },
            legend: {
                position: 'right',
                maxLines: 3,
                textStyle: {
                    color: '#2a292e',
                    fontName: 'Vazir',
                    fontSize: 13,
                },

            },
            chart: {
                title: '',
                subtitle: ''
            },
        };

        function drawMaterialChart() {
            var materialChart = new google.charts.Bar(chartDiv);
            materialChart.draw(data, google.charts.Bar.convertOptions(materialOptions));
            button.innerText = 'Change to Classic';
            button.onclick = drawClassicChart;
        }
<script>

ثبت پرسش جدید
امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
0

سلام برای چهی فایل رو بعد از لود بخونه؟ شما یه تابع مینویسی بعد از لود شدن صفحه یه ajax بزنه و اطلاعات رو بگیره


مجید
تخصص : برنامه نویس
@majeeddehghan 3 سال پیش آپدیت شد
0

@ajdar9667 در زدن ajax و گرفتن از اطلاعات مشکلی ندارم چجوری میشه بعد از دریافت، اطلاعات را داخل جاوا اسکریپت قرار داد؟ اینجوری نمودار نمایش داده میشه؟


AliSo
تخصص : برنامه نویس PHP
@alisoleimani.dev 3 سال پیش مطرح شد
0

اگر تابع ایجکس رو به صورت async صدا بزنید میتونید متغیر data رو داخل js بدون مشکل از response ایجکس مقدار دهی کنید و بعد چارت رو رسم کنید.
اگر با این روش اشنایی ندارید راه حل ساده تر اینه که داخل onSuccess ایجکس کار های مربوط به چارت رو انجام بدید و داخل اون تابع چارت رو رسم کنید


مجید
تخصص : برنامه نویس
@majeeddehghan 3 سال پیش مطرح شد
0

@alisoleimani.dev امانش هست بیشتر راهنمایی کنید در خصوص async؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام