Php CKEditor-内联编辑:浏览器发布的内容不完整

Php CKEditor-内联编辑:浏览器发布的内容不完整,php,javascript,ajax,ckeditor,inline-editing,Php,Javascript,Ajax,Ckeditor,Inline Editing,这里是保存“编辑正文”字段的浏览器脚本: <script> $(document).ready(function(){ $("#save_editable").click(function(){ var edit_body = $("#edit_body").html(); setTimeout(function(){ $.ajax({ url:'http://my-url.com/my_editor.php?id_to_update=123', ty

这里是保存“编辑正文”字段的浏览器脚本:

<script>
$(document).ready(function(){
 $("#save_editable").click(function(){
  var edit_body = $("#edit_body").html();
  setTimeout(function(){
   $.ajax({
    url:'http://my-url.com/my_editor.php?id_to_update=123',
    type:'POST',
    data:{edit_body:edit_body},
    success:function(data){
     if(data=='1'){
      alert('Saved');
     }
    }
   });
  },5000);
 });
});
</script>
if(@$_POST["edit_body"]){
 $id_to_update=intval($_GET['id_to_update']);
 $edit_body=iconv('UTF-8', 'windows-1251', html_entity_decode($_POST["edit_body"], ENT_QUOTES, "utf-8"));
 if(mysql_query(sprintf('update my_table set body="%s" where id="%s";',$edit_body,$id_to_update)){
  print '1';
 }
}
问题是: 当“编辑正文”包含大量文本时,它会成功保存,但内容不完整。 浏览器越弱,保存的文本越少。 在本例中,我使用了5秒延迟的setTimeout函数。但有时也没用


如何让浏览器在Ajax post之前等待处理变量“edit_body”?

使用CKEditor的getData()方法而不是jQuery的html()方法获取文档解决了这个问题:


浏览器越弱,这到底意味着什么?您是否查看了发送到服务器的内容?当您从控制台/小提琴手查看post请求时,它都在那里吗?您是否取消了“保存可编辑”的“单击”操作?当我在浏览器中打开了20多个选项卡时,它的工作速度会变慢,从页面中的字段获取变量的时间也会变长。服务器端一切正常。我不会取消任何事情。只是等待。
var edit_body = CKEDITOR.instances["edit_body"].getData();