推迟PHP代码有什么办法吗?
与javascript一样,我们使用< script defer =“defer”>< / script>.有没有办法用PHP代码做同样的事情?
更新:
这是我使用的代码:
信息:此代码位于我的侧边栏中,导致网站在加载时停止2-3秒.我正试图跳过这个问题,并在网站的其余部分加载时加载此代码….我也开放其他编码解决方案.
<div style="padding:5px;">
<?php
function currency($from_Currency,$to_Currency,$amount) {
$amount = urlencode($amount);
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);
$url = "http://www.google.com/ig/calculator?hl=en&q=$amount$from_Currency=?$to_Currency";
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$rawdata = curl_exec($ch);
curl_close($ch);
$data = explode('"', $rawdata);
$data = explode('"', $data['3']);
$var = $data['0'];
return round($var,1);
}
?>
<div style="padding:2px; border-bottom:1px solid #EFEFEF;">1 USD er <?php echo currency("USD","NOK",1); ?> NOK<br />
</div>
<div style="padding:2px; border-bottom:1px solid #EFEFEF;">1 EUR er <?php echo currency("EUR","NOK",1); ?> NOK<br />
</div>
<div style="padding:2px; border-bottom:1px solid #EFEFEF;">1 GBP er <?php echo currency("GBP","NOK",1); ?> NOK<br />
</div>
<div style="padding:2px; border-bottom:1px solid #EFEFEF;">1 SEK er <?php echo currency("SEK","NOK",1); ?> NOK<br />
</div>
<div style="padding:2px; border-bottom:1px solid #EFEFEF;">1 DKK er <?php echo currency("DKK","NOK",1); ?> NOK<br />
</div>
</div>
解决方法:
两种选择:
>使用AJAX在单独的请求中加载它,以便它不会延迟页面加载.但是,由于这是一个不同的域名,您将不得不破解相同的原始政策,例如使用JSONP,所以这可能很棘手,如果做得很糟,会产生安全隐患.尝试使用jQuery,根据this tutorial.
>运行一个cron作业,在服务器上定期检索此数据并将其存储在数据库中,以便从那里加载.
两种方式都可以,但如果数据量很大和/或远程连接可能很慢,那么cron选项可能更好.