0

Django のテンプレートに渡した次のような辞書があります。

files = {
    "20090209.02s1.1_sequence.txt": [645045714, 2584.9807732105255, 137625600], 
    "20090209.02s1.2_sequence.txt": [645045714, 2569.1707730293274, 158859264]
}

キーは file_name で、値は配列です。配列の最初の要素はtotal_file_size, second_element -> duration、ファイル転送が開始され、third element -> number of size transferred.

ファイルを転送するための remPercentage および remTime とともに、ファイル情報を表にリストしています。

  {% for choice in overview %}              
        <tr>
            <td><input type="checkbox" name="choice_stop" id="choice{{ forloop.counter }}" value="{{ choice.id }}" onchange="checkChecked_stop()"/></td>
            <td><label for="choice{{ forloop.counter }}">{{ choice.name }}</label></td>
            <td>{{ choice.source }}</td>
            <td><div id="remPercentage{{ forloop.counter }}"></div></td>
            <td>{{ choice.start_date }}</td>
            <td><div id="remTime{{ forloop.counter }}"></div></td>
            <td>{{ choice.human_size }}</td>
            <td><input type="checkbox"  disabled {{ choice.flag_email }} /></td>
        </tr>
  {% endfor %}

remPercentageこれは、サーバーにアクセスしてandを取得する changeData() と呼ばれる私の Javascript 関数remTimeです。

var interval;

var counter=0;
var length;
var speed;
var duration;

function changeData() {
    var url="/ajax_call_size";
    var xmlh=new XMLHttpRequest();
    xmlh.open("GET",url,false);
    xmlh.send(null);
    var resObj=xmlh.responseText;

    var total_size = get the total_size
    var transfer_duration = get the transfer_duration
    var transfer_size = get the transfer_size
    length=total_size.length;
    for(var i=0;i<length;i++) {

        if(typeof(transfer_size[i])!="undefined") {
            transfer_per = parseInt(100-(transfer_size[i]/total_size[i] * 100));
            remaining_size =  total_size[i] -  transfer_size[i];

            if(transfer_per!=0) {
               eTime_remaining = (transfer_duration[i]/transfer_size[i])*(total_size[i]-transfer_size[i]) ;  
               document.getElementById("remPercentage"+parseInt(i+1)).innerHTML=transfer_per+"%";;
               document.getElementById("remTime"+parseInt(i+1)).innerHTML=secondsToString(eTime_remaining);
            } else {
                document.getElementById("remPercentage"+parseInt(i+1)).innerHTML="1%";
               document.getElementById("remTime"+parseInt(i+1)).innerHTML="1 sec";
            }
        } else {
            document.getElementById("remPercentage"+parseInt(i+1)).innerHTML="completed";
            document.getElementById("remTime"+parseInt(i+1)).innerHTML="completed";
        } 
    }
    counter+=1;
}

setInterval("changeData()",5000);

辞書データを抽出し、テンプレートのそれぞれのファイル列に情報を入れるにはどうすればよいですか? ありがとう

4

1 に答える 1