JavaScriptから非同期でPHPのファンクション(関数)を呼び出すサンプル
目次
PHPのFunctionの一部にstream_get_contents(指定したURLのHTMLソースを取得する関数)を使っていて、それを多用すると、PHPの処理が終わるまでページの表示が停まるので、ページの読込がかなり遅くなります。どうにかならないかな?と考えてみました。
『PHPのファンクションをJavscriptから呼び出せば、非同期で表示できるのでは?』と思い、やり方を探してヒントになるやり方を見つけたのでメモ。
重たい処理はサーバー側のPHPで処理させて、表示の部分だけJSの非同期で処理するといった感じです。
サンプル
jQueryなどを使わずにできるシンプルな方法のサンプル
これをいじっていけば旨くいけそうですが、AMPページとかには使えそうにないので、AMPページではそうするか考えないといけない感じです。
<?php
function func($a) {
echo( $a );
}
?>
<script type="text/javascript" async>
function test(){
document.getElementById("php_code").innerHTML='<?php func("hello");?>';
}
</script>
<a href="#" onclick="test(); return false;"> test </a>
<p id="php_code"></p>
参考サイト
こちらのページにはプレーンなJavascriptのサンプルと、jQueryを使ったサンプルがあります。

