如何在ajax请求后有效地呈现文件

时间:2019-05-20 09:56:08

标签: php ajax foreach filesystems render

对于文件系统,我使用ajax请求重命名目录或文件。

扫描目录中的文件:

$files = array_diff( scandir($dir), array(".", "..", "tmp") );

部分php代码:

if( isset($_POST['new_name']) ){        

// code for renaming goes here
    echo $_POST['old_name'] . 'renamed to ' . $_POST['new_name'];
exit;
}

要重命名目录或文件,显示文件名,日期,扩展名等...,我使用foreach,其结构如下所示:

<div class="echo"><div>
<div class="dynamic-content">

foreach($files as $file) {

?>
 <!-- Rename-->     
<td class="td-rename">
  <h4>Rename File/Folder</h4>
  Current name: <b><?php echo basename($dir.'/'.$file); ?></b><br />
  <form class="rafform" method="post">
    <input type="hidden" class="old_name" name="old_name" value="<?php echo $dir . '/' . $file; ?>" />                                      
    <input  type="text" class="new_name form-control" name="new_name" placeholder="only a-z, A-Z, 0-9, -, _" value="" />
    <input type="submit" class="submitmodal rename btn " value="Rename" />                      
  </form>
</td>

<!-- below are coming more `td's` like:-->
<td class="td-filename">
…………
</td>    
<td class="td-date">
…………
</td>
<td class="td-extension">
…………
</td>
and so on...
<?php } ?> // end foreach
</div> <!-- end dynamic content-->

我的ajax请求看起来像这样:

$(document).on('submit' , ".rafform" , (function(e) {

e.preventDefault();

$.ajax({
url: "",
type: "post",
data:  new FormData(this),
cache: false,               
contentType: false,
processData: false,             
beforeSend: function () {
    window.location.hash='close'; /* show spinner and disappear upload modal */                 
    },
success: function(data) {

    $('.dynamic-content').load('index.php .dynamic-content > *');
    $('.echo').append(data);
    $('.uploadspinner').hide();                 
    $(".echolist").delay(5000).fadeOut(500);

},


});

}));

因此,在每个请求之后:来自PHP的回显被放入类echo的div中,并且要立即查看更改,我只用相同的load()来做index.phpdynamic-content中的div中的内容。因为在此div中,将渲染文件。用户可以立即看到文件已重命名。

但是现在我注意到,当目录中包含许多子目录和文件时,渲染文件的速度越来越慢。

是否有更快的方法来显示更改后的文件(每个示例重命名)?对我而言,重要的是,用户可以立即看到所有更改! 如果是这样,我将要使用什么结构?

0 个答案:

没有答案