2016-04-24 68 views
1

我正在使用Fine Uploader爲社區網站創建一個模型文件上傳工具。Fine Uploader session縮略圖加載緩慢

我已經設置了會話以檢索服務器中的初始文件以及縮略圖URL。

這一切都很好,但縮略圖的渲染速度非常慢。 我無法解決原因。所以我硬編碼爲四個文件中的每一個使用一個非常小的縮略圖。這沒有什麼區別。

服務器端不是問題。信息很快就會回來。

我做錯了什麼?爲什麼fineuploader如此緩慢?這裏是屏幕抓取。渲染四個縮略圖需要4秒鐘的時間。

fine uploader rendering thumbs

我使用的是最新的Chrome。這是一個相當強大的機器上的NancyFX項目。用其上的大圖片渲染其他頁面很快。

客戶端代碼:

thumbnails: { 
       placeholders: { 
        waitingPath: '/Content/js/fine-uploader/placeholders/waiting-generic.png', 
        notAvailablePath: '/Content/js/fine-uploader/placeholders/not_available-generic.png' 
       } 
      }, 
      session: { 
       endpoint: "/getfiles/FlickaId/342" 
      }, 

服務器端代碼:

 // Fine uploader makes session request to get existing files 
     Get["/getfiles/FlickaId/{FlickaId}"] = parameters => 
     { 
      //get the image files from the server 
      var i = FilesDatabase.GetFlickaImagesById(parameters.FlickaId); 

      // list to hold the files 
      var list = new List<UploadedFiles>(); 

      // build the response data object list 
      foreach (var imageFile in i) 
      { 
       var f = new UploadedFiles(); 

       f.name = "test-thumb-small.jpg"; // imageFile.ImageFileName; 
       f.size = 1; 
       f.uuid = imageFile.FileGuid; 
       f.thumbnailUrl = "/Content/images/flickabase/thumbnails/" + "test-thumb-small.jpg"; // imageFile.ImageFileName; 

       list.Add(f); 
      } 

      return Response.AsJson(list); // our model is serialised by Nancy as Json! 

     }; 
+0

是否存在文件大小問題?我還沒有發回真正的文件大小呢。這只是爲了顯示。 –

回答

2

這是由設計,並且實現既防止UI線程從與所述圖像縮放邏輯和被淹沒防止特定於Chrome的內存泄漏問題。這是在文件的縮略圖和預覽部分中說明,特別是在the "performance considerations" area

對於支持客戶端生成的圖像的預覽(qq.supportedFeatures.imagePreviews ===真),模板 - 之間的可配置瀏覽器暫停生成的預覽正在生效。這是爲了防止產生預覽的複雜過程在很長一段時間內壓倒客戶端機器的CPU。如果沒有這個限制,瀏覽器的UI線程會有阻塞的風險,阻止任何用戶交互(滾動等),直到生成所有預覽。

您可以調整或通過the thumbnails option刪除此暫停,但我建議你不這個除非你是確保用戶不會下降了大量的複雜的圖像文件。

+0

感謝雷的快速反應。有趣。有什麼辦法可以改變這個參數只是爲了「初始文件」加載會話?當實際上發生的所有事情都是爲了讓圖像文件列表從服務器返回並顯示在網頁中時,暫停這種做法似乎不太合適。如果我要寫一個js循環,在頁面上放置一系列標記,結果就不會有滯後。只有當用戶在控件上放置文件時纔會發生暫停。或者這是不可能的? –

+0

正在調整圖像大小以確保它們均勻顯示。所以這不僅僅是渲染圖像標籤。 –

+0

好的,謝謝。在這種情況下,它只會是我自己和其他一些人上傳文件,所以這不是什麼大問題。我會減少一點時間並與之共處。 –