PDA

View Full Version : تغییر محل لود فایل های js در Yii Framework



engmmrj
یک شنبه 20 مهر 1393, 13:09 عصر
فریمورک Yii بصورت خودکار فایل های js را در تگ head لود میکند که این امر باعث کاهش سرعت لود سایت و همینطور کاهش سئو می شود برای لود فایل های js در محل دیگر فریمورک Yii دستوراتی در نظر گرفته است .

1 - لود فایل های js در head


Yii::app()->clientScript->coreScriptPosition=CClientScript::POS_HEAD;

2 - لود فایل های js در body


Yii::app()->clientScript->coreScriptPosition=CClientScript::POS_BEGIN;

3 - لود فایل های js در پایین body


Yii::app()->clientScript->coreScriptPosition=CClientScript::POS_END;

توضیحات بیشتر در سایت Yii (http://www.yiiframework.com/doc/api/1.1/CClientScript#registerScriptFile-detail)

منبع : وبلاگ خودم (http://engmmrj.ir/site/14)

desatir7316
یک شنبه 20 مهر 1393, 15:02 عصر
روشي هست كه توي اون بگي مثلا فلان فايل css يا js توي فلان view لود بشه يا نشه، يعني در اصل ليست view هارو بش بدي؟ :متفکر:

engmmrj
یک شنبه 20 مهر 1393, 20:52 عصر
روشي هست كه توي اون بگي مثلا فلان فايل css يا js توي فلان view لود بشه يا نشه، يعني در اصل ليست view هارو بش بدي؟ :متفکر:

$listView = array('index', 'contact', 'order');

if(in_array($this->action->id, $listView)) {


Yii::app()->clientScript->coreScriptPosition=CClientScript::POS_BEGIN;

//code here ...
}

SlowCode
دوشنبه 21 مهر 1393, 18:37 عصر
اگر یه فایل خاص رو تو تعداد ویوهای کمی میخوای لود بشن، فایل رو تو اون فایل ها رجیستر کن:

Yii::app()->clientScript->registerCssFile(Yii::app()->request->baseUrl . '/css/style.css');
ولی اگر اون فایل قراره تو اکثر ویوها باشه به جز چندتا ویو، بهتره از روشی که دوستمون تو پست 3 اشاره کرد استفاده کنی.
درواقع همون لیست سفید و لیست سیاه میشه دیگه.