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を使ったサンプルがあります。