score:2

I think that it is normal that the event d3.event.loaded returns the total size. Did you try the following to get the progress from the variable p in the function on "progress"?

Then to get the actual progress, you can use the following question: How to get progress from XMLHttpRequest

The final result should look like something like this:

d3.csv("my.csv",function(data){
        //do stuff with data
    }).on("progress", function(event){
        //update progress bar
        if (d3.event.lengthComputable) {
          var percentComplete = Math.round(d3.event.loaded * 100 / d3.event.total);
          console.log(percentComplete);
       }
    }
});

Related Query

More Query from same tag