اسماعیل ابراهیمی 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 لینک به ارسال
پست های پیشنهاد شده
لطفا برای ارسال دیدگاه وارد شوید
شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید
ورود به حساب کاربری