WPRangi

بالابردن کارایی جستجوی اجکس

2 پست در این موضوع قرار دارد

سلام به همه دوستان

یک جستجوی اجکس ایجاد کردم ولی می خوام کارایی یا Performance اش رو افزایش بدم

ضمناً این فقط کد اولیه هست و باید مسائل امنیتی مثل nonce و ... بهش اضافه بشه

ممنون میشم دوستان اگر تجربه یا نظری در این زمینه دارن مطرح کنن

با تشکر

کد جی کوئری :

 $(".kani-ajax-search").on('keyup',function(){
            var searchText= $(this).val();
            if (searchText !=='') {
                $.ajax({
                    beforeSend : function () {
                        $(".search-result").empty();
                        $(".search-result").html('<div class="kts-loader-search"></div>');
                        $(".search-result").show();
                        $(".kts-loader-search").show();
                    },
                    type: "post",
                    url: ktss_common_ajax_options.ajaxurl,
                    data: {
                        'action': 'isearch',
                        'searchValue': searchText
                    },
                    dataType: "html",
                })
                .done(function(response){
                    $(".search-result").html(response);
                })
                .fail(function(response){
                    $(".kts-loader-search").hide();
                })
                .always(function(){
                    $(".kts-loader-search").hide();
                });
            } else {
                $(".search-result").empty();
                $(".search-result").hide();
            }
    });

 

کد پی اچ پی :

add_action('wp_ajax_isearch','isearch');
add_action('wp_ajax_nopriv_isearch','isearch');
function isearch(){
	if ($_SERVER["REQUEST_METHOD"]=="POST") {
		if (isset($_POST['searchValue'])) {
			global $wpdb;
			$sql = "SELECT ID,post_title FROM {$wpdb->prefix}posts ".
			" WHERE  (`post_type`='product' OR `post_type`='post' ) AND ( `post_title` LIKE '%".$_POST['searchValue']."%' OR " .
			" `post_title` LIKE '%".$_POST['searchValue']."%' ) LIMIT 11" ;

			$result=$wpdb->get_results($sql,'ARRAY_A');
			if(count($result)) {
				$result = generate_search_result($result);
			} else {
				$result ='<div class="kts-notfound">' . esc_html__('Nothing Found !', 'kanishop-theme') . '</div>';
			}
			
			echo $result;
			wp_die();
		}
		wp_die();
	}
	wp_die();
}

function generate_search_result($search_result){
	$counter=1;
	$elements = "<div class='search-wrapper-item'>";
	foreach ($search_result as $item) {
		if ($counter > 10 ) {
			break;
		}
		$elements .= '<p class="items">';
		$elements .= '<a href="'.get_permalink($item['ID']).'">'.$item['post_title'].'</a>';
		$elements .= '</p>';
		$counter++;
	}
	$elements .= "</div>";
	if ($counter > 10) {
		$elements .= "<div class='search-more'><a href=''>".esc_html__("See More Result", "kanishop-theme")."</a></div>";
	}
	return $elements;
}

 

0

به اشتراک گذاری این پست


لینک به پست

سلام

از چه نظر بهینه تر بشه؟

بصورت کلی بنظرم کد مورد خاصی نداره که نیاز به بهینه تر شدن داشته باشه.

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری