[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

kwangheelee updated GUACAMOLE-1247:
-----------------------------------
    Description: 
When there are many files in the Linux directory, an error occurs and the 
connection is disconnected. 

Currently, there are more than 40,000 files in a specific directory, and an 
error occurs when searching the file list through SFTP. I think, this case is 
not ideal, but some users operate servers that way.

After profiling to find the cause of the problem, it seems that the connection 
is disconnected because a lot of time is consumed when rendering the DOM after 
parsing the json by getting the list of SFTP files. (Please refer to the 
attached photos.)
{code:java}
//guacFileBrowser.js
// Watch directory contents once file template is available 
$templateRequest('app/client/templates/file.html').then(function 
fileTemplateRetrieved(html) {
   // Store file template statically 
   fileTemplate = html;

   // Update the contents of the file browser whenever the current directory 
(or its contents) changes      
   $scope.$watch('filesystem.currentDirectory.files', function 
currentDirectoryChanged(files) {
     // Clear current content 
     currentDirectoryContents.html('');
 
     // Display all files within current directory, sorted 
     angular.forEach(sortFiles(files), function displayFile(file) {     
         currentDirectoryContents.append(createFileElement(file)); });
     });
}, angular.noop); // end retrieve file template{code}
 

In my opinion, it takes a lot of time to render the DOM. If you use the lazy 
loading technique, it seems that you can immediately show the list to the user 
without disconnecting.

Thanks.

  was:
When there are many files in the Linux directory, an error occurs and the 
connection is disconnected. 

Currently, there are more than 40,000 files in a specific directory, and an 
error occurs when searching the file list through SFTP. I think, this case is 
not ideal, but some users operate servers that way.

After profiling to find the cause of the problem, it seems that the connection 
is disconnected because a lot of time is consumed when rendering the DOM after 
parsing the json by getting the list of SFTP files. (Please refer to the 
attached photos.)
{code:java}
// guacFileBrowser.js
// guacFileBrowser.js// guacFileBrowser.js// Watch directory contents once file 
template is 
available$templateRequest('app/client/templates/file.html').then(function 
fileTemplateRetrieved(html) {
 // Store file template statically fileTemplate = html;
 // Update the contents of the file browser whenever the current directory (or 
its contents) changes $scope.$watch('filesystem.currentDirectory.files', 
function currentDirectoryChanged(files) {
 // Clear current content currentDirectoryContents.html('');
 // Display all files within current directory, sorted 
angular.forEach(sortFiles(files), function displayFile(file) { 
currentDirectoryContents.append(createFileElement(file)); });
 });
}, angular.noop); // end retrieve file template{code}
In my opinion, it takes a lot of time to render the DOM. If you use the lazy 
loading technique, it seems that you can immediately show the list to the user 
without disconnecting.

Thanks.


> Failure to get SFTP list when there are many file lists
> -------------------------------------------------------
>
>                 Key: GUACAMOLE-1247
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1247
>             Project: Guacamole
>          Issue Type: Improvement
>          Components: guacamole-client
>    Affects Versions: 1.2.0
>            Reporter: kwangheelee
>            Priority: Minor
>         Attachments: err1.png, err2.png
>
>
> When there are many files in the Linux directory, an error occurs and the 
> connection is disconnected. 
> Currently, there are more than 40,000 files in a specific directory, and an 
> error occurs when searching the file list through SFTP. I think, this case is 
> not ideal, but some users operate servers that way.
> After profiling to find the cause of the problem, it seems that the 
> connection is disconnected because a lot of time is consumed when rendering 
> the DOM after parsing the json by getting the list of SFTP files. (Please 
> refer to the attached photos.)
> {code:java}
> //guacFileBrowser.js
> // Watch directory contents once file template is available 
> $templateRequest('app/client/templates/file.html').then(function 
> fileTemplateRetrieved(html) {
>    // Store file template statically 
>    fileTemplate = html;
>    // Update the contents of the file browser whenever the current directory 
> (or its contents) changes      
>    $scope.$watch('filesystem.currentDirectory.files', function 
> currentDirectoryChanged(files) {
>      // Clear current content 
>      currentDirectoryContents.html('');
>  
>      // Display all files within current directory, sorted 
>      angular.forEach(sortFiles(files), function displayFile(file) {     
>          currentDirectoryContents.append(createFileElement(file)); });
>      });
> }, angular.noop); // end retrieve file template{code}
>  
> In my opinion, it takes a lot of time to render the DOM. If you use the lazy 
> loading technique, it seems that you can immediately show the list to the 
> user without disconnecting.
> Thanks.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to