اسماعیل ابراهیمی 371 ارسال شده در آبان 97 گزارش بازنشر ارسال شده در آبان 97 سلام به همه دوستان یک جستجوی اجکس ایجاد کردم ولی می خوام کارایی یا 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; } نقل قول لینک به ارسال
Morteza 34190 ارسال شده در آبان 97 گزارش بازنشر ارسال شده در آبان 97 سلام از چه نظر بهینه تر بشه؟ بصورت کلی بنظرم کد مورد خاصی نداره که نیاز به بهینه تر شدن داشته باشه. نقل قول لینک به ارسال
اسماعیل ابراهیمی 371 ارسال شده در آبان 97 مالک گزارش بازنشر ارسال شده در آبان 97 مرتضی عزیز ممنون از شما می خوام تعداد درخواست ها کم بشه در صورت امکان مثلاً اینکه در هنگام تایپ کاربر یکی دو ثانیه وقفه بندازم بهتره یا ... فکر می کنم می تونه بهتر بشه نقل قول لینک به ارسال
Mobin 1669 ارسال شده در آذر 97 گزارش بازنشر ارسال شده در آذر 97 البته به نظر من این خط کد به صورت زیر باشه بهتره if (searchText !=='') if (searchText.length>3) 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .