目次
PHP で仮想プロキシを使用して、遅延読み込みテクノロジ、PHP ローディングを実装します
phpでファイルのロードを遅らせる方法
PHP で遅延読み込みを実装するにはどうすればよいですか?
ホームページ バックエンド開発 PHPチュートリアル PHP で仮想プロキシを使用して遅延読み込みテクノロジを実装する、phploading_PHP チュートリアル

PHP で仮想プロキシを使用して遅延読み込みテクノロジを実装する、phploading_PHP チュートリアル

Jul 13, 2016 am 10:15 AM
php 遅延読み込み

PHP で仮想プロキシを使用して、遅延読み込みテクノロジ、PHP ローディングを実装します

ちなみに、私はこれを Martin の「Enterprise Application Architecture Patterns」から学びました。これは PHP 動的言語の機能を支援し、仮想プロキシ プレースホルダーを通じて Java よりもはるかに簡単に遅延読み込みを実装できます。唯一の欠陥は、組み込みの基本タイプではなく、オブジェクトのみをプロキシできることです。

私が試した PHP ドメイン モデルの設計では、これを使用して DomainObject の遅延読み込みを実装しました。

コードをコピーします コードは次のとおりです:

* 仮想プロキシでは、メンバーにアクセスされた場合にのみ、クロージャ関数が呼び出され、ターゲット オブジェクトが生成されます。
*
* @作者tonyseek
*
*/
クラスVirtualProxy
{
プライベート $holder = null;
private $loader = null;

/**
* * 仮想プロキシ。メンバーにアクセスされた場合にのみクロージャ関数が呼び出され、ターゲット オブジェクトが生成されます。
*
* @param Closure $loader はプロキシオブジェクトのクロージャ関数を生成します
​​*/
パブリック関数 __construct(Closure $loader)
{
$this->loader = $loader;
}

/**
* * プロキシメンバーメソッドの呼び出し
*
* @param string $method
* @param 配列 $arguments
* @throws BadMethodCallException
* @return 混合
​​*/
パブリック関数 __call($method, 配列 $arguments = null)
{
$this->check();

if (!method_exists($this->holder, $method)) {
throw new BadMethodCallException();
}

return call_user_func_array(
array(&$this->holder, $method),
$arguments);
}

/**
* プロキシメンバー属性の読み取り
*
* @param string $property
* @throws ErrorException
* @return 混合
​​*/
パブリック関数 __get($property)
{
$this->check();

if (!isset($this->holder->$property)) {
throw new ErrorException();
}

return $this->holder->$property;
}

/**
* プロキシメンバー属性の割り当て
*
* @param string $property
* @param 混合 $value
​​*/
パブリック関数 __set($property, $value)
{
$this->check();

$this->holder->$property = $value;
}

/**
※プロキシオブジェクトが既に存在するか確認し、存在しない場合は生成します。
​​*/
プライベート関数 check()
{
If (null == $this->holder) {
$loader = $this->loader;
$this->holder = $loader();
}
}
}


// テスト
$v = 新しい VirtualProxy(function(){
echo 'Now, Loading', "n";
$a = 新しい ArrayObject(range(1,100));
$a->abc = 'a';
//実際の使用ではここでDataMapperのfindXXXメソッドを呼び出します
// ドメイン オブジェクトのコレクションを返します
$a を返します;
});
//プロキシオブジェクトはオリジナルオブジェクトとして直接アクセスされます
// この時、コンストラクターで渡されたコールバック関数が呼び出されます
//これにより、オブジェクト操作の読み込みの遅延が実現します
echo $v->abc . $v->offsetGet(50);

phpでファイルのロードを遅らせる方法

最初に表示されたコンテンツをバッファからプッシュします。後続のコンテンツが出てくるかどうかは、前のコンテンツには影響しません。 . .
簡単なコードは次のとおりです:
//重要
echo rand(),'最初に出てきたもの
';
ob_flush();
flush();

/ /重要ではありません。 . .
include "big.avi";
sleep(3);
ob_flush();
?>

追加した質問から、上記のコードが無駄に書かれていることがわかりました。
裸の馬~ 結局のところ、必要なのは ajax 遅延ロードだけです!

PHP で遅延読み込みを実装するにはどうすればよいですか?

PHP での遅延ロードは、最終的にはオンデマンドでファイルをロードし、オンデマンドでオブジェクトをインスタンス化することです。
オンデマンドでのインスタンス化は、上記のメソッドを使用して実装できますが、より多くの場合、プロキシが使用されます。ローダーが処理します

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/906675.html技術記事仮想エージェントは PHP で遅延読み込みテクノロジを実装するために使用されます。PHP の読み込みは、Martin の「エンタープライズ アプリケーション アーキテクチャ パターン」から学んだもので、PHP の動的言語機能を支援します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles