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

PAGETOP