docs: function(files, mode) {
  				var place    = list ? cwd.find('tbody') : cwd,
  					l        = files.length, 
  					atmb     = {},
  					findNode = function(file) {
  						var pointer = cwd.find('[id]:first'), file2;
  
  						while (pointer.length) {
  							file2 = fm.file(fm.cwdId2Hash(pointer.attr('id')));
  							if (!pointer.hasClass('elfinder-cwd-parent') && file2 && fm.compare(file, file2) < 0) {
  								return pointer;
  							}
  							pointer = pointer.next('[id]');
  						}
  					},
  					findIndex = function(file) {
  						var l = buffer.length, i;
  						
  						for (i =0; i < l; i++) {
  							if (fm.compare(file, buffer[i]) < 0) {
  								return i;
  							}
  						}
  						return l || -1;
  					},
  					// created document fragment for jQuery >= 1.12, 2.2, 3.0
  					// see Studio-42/elFinder#1544 @ github
  					docFlag = $.htmlPrefilter? true : false,
  					tempDom = docFlag? $(document.createDocumentFragment()) : $('<div/>'),
  					file, hash, node, nodes, ndx;
  
  				if (l > showFiles) {
  					// re-render for performance tune
  					content();
  					selectedFiles = fm.arrayFlip($.map(files, function(f) { return f.hash; }), true);
  					trigger();
  				} else {
  					// add the item immediately
  					l && wz.removeClass('elfinder-cwd-wrapper-empty');
  					
  					while (l--) {
  						file = files[l];
  						hash = file.hash;
  						
  						if ($('#'+fm.cwdHash2Id(hash)).length) {
  							continue;
  						}
  						
  						if ((node = findNode(file)) && ! node.length) {
  							node = null;
  						}
  						if (! node && (ndx = findIndex(file)) >= 0) {
  							buffer.splice(ndx, 0, file);
  						} else {
  							tempDom.empty().append(itemhtml(file));
  							(file.mime === 'directory') && !mobile && makeDroppable(tempDom);
  							nodes = docFlag? tempDom : tempDom.children();
  							if (node) {
  								node.before(nodes);
  							} else {
  								place.append(nodes);
  							}
  						}
  						
  						if ($('#'+fm.cwdHash2Id(hash)).length) {
  							if (file.tmb) {
  								atmb[hash] = file.tmb;
  							}
  						}
  					}
  	
  					if (list) {
  						setColwidth();
  						fixTableHeader({fitWidth: ! colWidth});
  					}
  					bottomMarkerShow(place);
  					if (Object.keys(atmb).length) {
  						Object.assign(bufferExt.attachTmbs, atmb);
  					}
  				}
  			}