[英]Does the body of my function get read every time?
我正在构建一个WordPress主题,并试图确定是什么导致它运行如此缓慢。 我的functions.php
大约有500行,并且具有与数据库交互的函数,例如
add_action( 'wp_ajax_nopriv_get_N_more', 'get_N_more' );
add_action( 'wp_ajax_get_N_more', 'get_N_more' );
$N = 9;
function get_N_more ( )
{
global $wpdb, $N;
$thisTable = ($_POST['workType'] === 'projs') ? 'wp_nas_projs' : 'wp_nas_cases';
$q = $wpdb->prepare( "SELECT id,compname,descsmall,sumsmall,imageurl FROM $thisTable ORDER BY postdate DESC LIMIT %d, %d", intval($_POST['numItemsLoaded']), $N);
$nextNRows = $wpdb->get_results($q);
removeEscapes($nextNRows);
$stillSomeLeft = ($_POST['numItemsLoaded'] + $N) < count($wpdb->get_results($wpdb->prepare("SELECT * FROM $thisTable")));
// ^ would like more efficient way of doing above
die(json_encode(array('stillSomeLeft' => $stillSomeLeft, 'workItems' => $nextNRows)));
}
每次读取脚本时都不会调用此类函数,但是我想知道,如果PHP每次都读取它们,那么将它们放在首位是否会导致性能下降。
PHP在请求期间只能读取一次函数,因此不会导致速度下降。
查看函数的定义:
function get_N_more ( )
{
}
它不会在对function_exists()
的检查中得到保护。 这意味着,如果对该文件进行了多次以上的分析,则执行将失败并报告一个错误,表明已在此范围中声明了get_N_more
函数。
在脚本解析期间,永远不会考虑代码的复杂性和运行时效率,而500行是相对琐碎的代码量。
tl; dr:这不是造成您变慢的原因。
简短的答案也许是。
do_action(...)
,则可能是由于发出多个ajax请求,或者由于发出新请求而导致超时或被取消。 这一切是什么意思?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.