在@Service
public class ParentService {
@Autowired
private ParentRepository parentRepository;
@Autowired
private ChildRepository childRepository;
@Transactional
@Lock(LockModeType.PESSIMISTIC_WRITE)
public void refresh(List<ParentEntity> parents) {
childRepository.deleteAllInBatch();
childRepository.resetAutoIncrement();
parentRepository.deleteAllInBatch();
parentRepository.resetAutoIncrement();
parentRepository.save(parents);
}
}
@Repository
@Transactional
public interface ParentRepository extends JpaRepository<ParentEntity, Integer> {
@Modifying
@Query(
value = "alter table parent auto_increment = 1",
nativeQuery = true
)
void resetAutoIncrement();
}
@Repository
@Transactional
public interface ChildRepository extends JpaRepository<ChildEntity, Integer> {
@Modifying
@Query(
value = "alter table child auto_increment = 1",
nativeQuery = true
)
void resetAutoIncrement();
}
上没有Google Documents
按钮。键入文档会自动保存所有更改。
如果键入两个词(SAVE
),则消息Saving...
和Saved
之间大约需要2秒钟。
尝试在我自己的网站上创建相同的功能。
文本区域ID lorem ipsum
具有输入事件:
tx
index-pro.php
$('#tx').on('input', function(){
console.log('Saving...');
let story = $(this).val();
$.post('index-pro.php', {fn: 'update', args: [story]}, function(){
console.log('Saved');
});
});
两个function update($story){
global $db;
$sql = "update arts set story = :astory";
$st = $db->prepare($sql);
$st->execute([
":astory" => $story
]);
}
之间总是需要大约5秒钟。
原因是什么,是否有可能像console.log
一样获得2秒?
还有更多-我的电脑和托管服务器之间的距离约为3公里。
我的电脑和Google服务器之间的距离远不止于此。
有帮助吗?
答案 0 :(得分:2)
在input
上执行此操作意味着每次击键都会保存。如果我输入500个字符,那就是500个AJAX调用。他们将开始堆积并失败。
请考虑“消除”您的AJAX呼叫,以免每次击键都不会触发它们。 Lodash的really good debounce function被广泛使用。