ユーザーがクリックすると JavaScript でデータをレンダリングできるように、MySQL データベースからの PHP オブジェクトを保存するための、邪魔にならず、計算コストが最も低い方法を見つけようとしています。
現在、ボタンのカスタム属性としてデータを保存しています。しかし、これは多くのコードを生成し、「遅い」と聞いています。$items
PHP オブジェクト(以下を参照)を JSON でエンコードする必要があるかどうか、およびその JavaScript がどのように見えるかを考えています。私は PHP に Codeigniter を使用しているので、代替foreach
ループ構文で問題が発生していることに注意してください。
これまでのところ、HTML/PHP については次のようになっています。
<img id="img"></img><a id="url"></a> <!--elements where data is rendered on click-->
<? foreach($items as $item):?>
<button data-id="<?=$item->id?>" data-url="<?=$item->url?>" data-img="<?=$item->img?>">click<?=$item->id?></button>
<?endforeach;?>
そして、ここに私のJSがあります:
$(document.body).on('click', 'button', function(){
var $this=$(this), id=$this.data('id'), url=$this.data('url'), img=$this.data('img');
$('#img').attr('src', img);
$('#url').attr('href', url).html(url);
});
私のサイトのデータのほとんどは MySQL 経由で PHP から取得されており、そのデータをいつ JavaScript 配列/JSON に変換する必要があるかという問題に長い間混乱していました。