2012-07-19 21 views
5

Bir sorunla karşılaşıyorum, saatlerce mücadele ediyorum. Ben quickload.php doğrudan eriştiğinizde TinyMCE ve komut (wordpress)jQuery yoluyla tinyMCE yüklediğimde tarayıcı donuyor .load()

$('.quickedit_form_' + parentID).load('<?php bloginfo('template_directory'); ?>/ajax/quickedit.php?id=' + parent.attr('id').replace('post-', ''), function(){ 
     tinyMCE.init({ 
      skin: 'wp_theme' 
     }); 
     $.scrollTo(parent, 800, {offset: {left: 0, top: -61}}); 
    }); 

Ve php sayfası (quickedit.php)

<?php 

// include WordPress 
require('../../../../wp-blog-header.php'); 

// get post 
global $current_user; 
$id = $_GET['id']; 
$post = get_post($id); 
if ($current_user->ID != $post->post_author) { 
    wp_die(__('Unauthorized access.','sofa')); 
} 

?> 

<h1 class="quickedit_h"><?php printf(__('Editing Post #%s','sofa'), $post->ID); ?></h1> 

<label for="edit_title_<?php echo $id; ?>" class="quickedit_label"><?php _e('Title:','sofa'); ?></label> 
<input type="text" name="edit_title_<?php echo $id; ?>" id="edit_title_<?php echo $id; ?>" value="<?php echo $post->post_title; ?>" class="quickedit_field" /> 

<label for="edit_type_<?php echo $id; ?>" class="quickedit_label"><?php _e('Post Type:','sofa'); ?></label> 
<select name="edit_type_<?php echo $id; ?>" id="edit_type_<?php echo $id; ?>" class="quickedit_select"> 
    <option value="text"<?php selected("text", sofa_post_type()); ?>><?php _e('Blog','sofa'); ?></option> 
    <option value="image"<?php selected("image", sofa_post_type()); ?>><?php _e('Image','sofa'); ?></option> 
    <option value="video"<?php selected("video", sofa_post_type()); ?>><?php _e('Video','sofa'); ?></option> 
</select> 

<div class="quickedit_save"><input type="button" value="<?php _e('Save','sofa'); ?>" class="button-secondary" /></div> 

<?php 
wp_editor($post->post_content, 'edit_content_'.$id, $settings = array(
    'wpautop' => true, 
    'media_buttons' => true, 
    'textarea_name' => 'edit_content_'.$id, 
    'textarea_rows' => 10, 
    'tabindex' => '', 
    'editor_css' => '', 
    'editor_class' => 'edit_content', 
    'teeny' => false, 
    'dfw' => false, 
    'tinymce' => true, 
    'quicktags' => true 
)); 
?> 

<div class="quickedit_save"><input type="button" value="<?php _e('Save','sofa'); ?>" class="button-secondary" /></div> 

<?php wp_footer(); ?> 

içeren bir php sayfasını yüklemek için jQuery yükü kullanıyorum tarayıcı, her şey pürüzsüz, gecikme ya da hiçbir şey yüklenmez. Ancak jQuery .load() ile eriştiğimde, tinymce ve düğmelerinin yüklenmesi yaklaşık 15 saniye sürüyor, donma tarayıcı (kullanıcı herhangi bir şeyle etkileşimde bulunamaz) hem Firefox'ta hem de kromda deneniyordu.

herkes bu bununla çalışırken, been saat neden oluyor bana önerebilir .. :(

Not:. I quickedit.php doğrudan tinymce yükleri eriştiklerinde ince ve hızlı çökme/donma ne olur . onun jquery .Load işlevinden denilen

bu soruna neden ne olabilir herhangi bir yön gerek

+0

Aynı sorunla karşılaşıyorum .get() Hata ayıklayıcım aracılığıyla jquery.min.ui.js dosyasını yüklerken donuyor - asynch ile ilgisi yok. Yalnızca sayfadaki ilk .get() isteğinde donma/yavaşlatma, sonraki istekler beklendiği gibi yanıt verir. Bunun benim için proxy sunucusuyla ilgili bir şey olduğunu düşünüyorum. – elzaer

cevap

0

Ben jQuery'nin düşük seviyeli ajax arayüzünü kullanarak denemek istiyorum:? jQuery.ajax

jQuery(function($) { 
    var ajax_url = '<?php bloginfo('template_directory'); ?>/ajax/quickedit.php?id=' + parent.attr('id').replace('post-', ''); //Included for readability 
    //Check if the elem is in the DOM, if so, load it via AJAX 
    if ($('.quickedit_form_' + parentID).length >0) { 
    $.ajax({ 
     url: ajax_url 
     complete: function () { 
      tinyMCE.init({ 
      skin: 'wp_theme' 
      }); 
     $.scrollTo(parent, 800, {offset: {left: 0, top: -61}}); 
     } 
    }); 
    } 
}); 

Hatalarla karşılaşmanızın nedeni, jQuery.load öğesinin çoklu bağımsız değişkenine (artı onun kullanımdan kaldırılmış ...?) Senkronize (engelleme) isteğine neden olabileceğidir.