大きなファイルをアップロードする必要があるアプリケーションを作成しています。私はこれを使用してFormDataオブジェクトを使用することを選択しました。私はユーザーに進行状況を報告することができます。Zend FrameworkまたはJavascriptを使用したブラウザの検出
IEはこれをサポートしていませんので、私はFlashにフォールバックする必要はありません。 Zend Frameworkを使用してIE 7/8/9 +を検出する最良の方法は何ですか?私は、各コントローラのindexActionメソッドを介して、必要に応じて他のアセットにロードしています。たとえば:
public function indexAction()
{
$this->view->stepnumber = 1;
$this->view->stepintro = 'Upload your photo.';
$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/fileuploader.js');
}
は今、私のページのいずれかで私はすでに(一部canvas
仕事のために)ブラウザ検出のいくつかのフォームを行っている:私はあまりにもかかわらず、この方法で販売されておりません
public function indexAction()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$this->view->stepnumber = 5;
$this->view->stepintro = 'Select your cut out detail.';
if(preg_match('/MSIE/i', $u_agent)) {
$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/excanvas.js');
} else {
$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/mootools/mootools-canvas-lib/mcl-min.js');
}
$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/frank/pentool.js');
$image = $this->uploadsDb->getImage();
$data = $this->nodedataDb->getNodedata($image->id);
$this->view->image = $image;
$this->view->nodeData = $data;
}
、私はJavascriptを使ってチェックしたいと思います。これは将来的にはより確実なものになるでしょう(私は思っています)。しかし、私はZF layout.phtmlの中でJavasriptを使ってどのように動くので、必要なJavascriptだけをロードしていますか?サーバーへの呼び出しを削減します。
ご迷惑をおかけして申し訳ありません。
SOLUTION:
私はYepNopeを使用することを決定した:
yepnope({
test : "FormData" in window,
yep : 'normal.js',
nope : 'flashupload.js'
});
ブラウザで検出されない、機能が検出されないhttp://modernizr.com/ –
私はあなたがブラウザーが必要な機能をサポートしているかどうかをブラウズするかどうかではなく、ブラウザーがクライアントかどうかを調べるべきだと思います。 – goat
クライアント側を確認すると、必要なJSをどのようにエレガントにダウンロードできますか?機能の検出で、私はすべてをダウンロードする必要がありますか? – beingalex