相關問題是here(但沒有回答)。我想返回通過XMLHttpRequest加載的HTML大小。我緩存文件30分鐘。所以我沒有將文件保存在臨時文件夾中,例如temporary_folder/filename.html。我可以使用filesize(filename-here)
來獲得這個文件的大小。但事實是,這只是返回HTML代碼的大小。該HTML文件還包含使用<img>
標記的圖像。我怎樣才能獲得這些尺寸?簡而言之,我想要大小(內部圖像)的文件名。HTML文件的總大小(包含其中的圖像大小)
function updateProgress (event)
{
var percentComplete = ((event.loaded/event.total)*100);
$('#progress-bar').val(percentComplete);
$('#progressbar-value').text(percentComplete);
}
這是我如何更新進度欄並顯示加載的百分比。但是這是用HTML文件的大小更新的,而不是包含在其中的圖像的大小。說5 KB(文件名.html)。這個文件名包含一些大的圖片,例如大小爲3或4 MB,所以進度條比實際的加載時間快。
任何想法來解決這個問題?
編輯:
閱讀其中一個答案在這裏,而構建HTML文件,我一直跟蹤圖像的大小,並增加了總規模爲文件名後。但隨後出現了一個新問題。在PHP方面,我設置了總大小的Content-Length
。但現在在客戶端,首先加載HTML,然後渲染圖像。因此再次填充進度條時會出現不匹配。另外我看到下面的錯誤在控制檯
Uncaught NotSupportedError: The implementation did not support the requested type of object or operation. (anonymous function)
w.extend.each
w.fn.w.each
w.fn.extend.val
updateProgress
您可能可以使用['AJAX progress'](http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/)(HTML 5 only iirc )。我假設在這個例子中'evt.total'是字節... – Andy
你能提供更多的細節嗎?在客戶端瀏覽器或服務器上緩存?如果前者如何拯救他們?你想要達到那個普通的緩存機制不能做什麼?你打算怎麼處理這個尺寸? –
另外 - 你緩存的圖像或只是HTML? –