2012-07-19 24 views
5

Tôi gặp vấn đề, phải vật lộn hàng giờ. Tôi đang sử dụng jQuery tải để tải một trang php chứa TinyMCE và các kịch bản của mình (wordpress)Trình duyệt đóng băng khi tôi tải tinyMCE qua jQuery .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}}); 
    }); 

Và trang php của tôi (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(); ?> 

Khi tôi truy cập trực tiếp vào quickload.php trình duyệt, mọi thứ tải mượt mà, không chậm trễ hay bất cứ thứ gì. Nhưng khi tôi truy cập nó thông qua jQuery .load() các tinymce và các nút mất khoảng 15 giây để tải, trình duyệt đóng băng (người dùng không thể tương tác với bất cứ điều gì) đã thử trong cả Firefox và chrome.

bất cứ ai có thể đề xuất với tôi lý do tại sao điều này xảy ra, hàng giờ cố gắng với điều này .. :(

Lưu ý:. Khi tôi truy cập trực tiếp quickedit.php tải TinyMCE tốt và nhanh chóng sụp đổ/đóng băng xảy ra khi . nó được gọi là từ chức năng jquery .load

tôi cần bất kỳ hướng tới những gì có thể gây ra vấn đề này

+0

Tôi gặp vấn đề tương tự với .get() Thông qua trình gỡ rối của tôi, nó đang đóng băng trong khi tải tệp jquery.min.ui.js cho tôi - không có gì liên quan đến asynch. Nó chỉ đóng băng/tải chậm trên yêu cầu .get() đầu tiên trên trang, mọi yêu cầu tiếp theo đều phản hồi như mong đợi. Tôi nghĩ rằng đó là một cái gì đó để làm với máy chủ proxy cho tôi. – elzaer

Trả lời

0

tôi sẽ cố gắng sử dụng giao diện mức thấp ajax jQuery: 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}}); 
     } 
    }); 
    } 
}); 

Lý do bạn có thể gặp phải lỗi là do tính chất đối số nhiều của jQuery.load (cộng với tôi nghĩ rằng nó không được chấp nhận ...?) Có thể gây ra yêu cầu đồng bộ (chặn).

Các vấn đề liên quan