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