2011-07-22 8 views
1

古いPHPサイトファイルを整理/維持する必要があります。主なPHPページには、ルールに基づいた他のPHPファイルが含まれています。スタイルシート/外部jをページ内に複数回含むことを避ける最善の方法

<link href="css/styles.css" rel="stylesheet" type="text/css"> 
<script language="javascript" src="js/functions.js"></script> 

PHPページが構築された後の時間のいくつかは、これらの外部のファイルを一度に同じページ内に複数含まれています。これらの数は、それらの中に以下のようにラインを持っています。

phpインクルードからこれらの外部ファイルリンクを削除するのは単純なケースではなく、時にはphpインクルードが置かれている場所もあります。

phpかjsのどちらかで外部ファイルが複数回出ないようにチェックしていますか?

感謝:)私の知る限りでは、これを行うための簡単な方法はありません

+0

私はのinclude_onceは、あなたの状況では不可能であると仮定JSを読み込む他にスキップ定義されている場合


はJS に変数$ MY_LIBRARY_IDENTIFIERを定義しますか? –

答えて

2

CSSと似た何かをPHPファイルにこれらのCSSやJSファイルを追加し、PHPファイルへのrequire_onceを置くことができます。そうすれば、ファイルはまだ含まれていない場合にのみインクルードされます。

+0

ありがとうございます。私はこの考えが好きです。 – WastedSpace

+0

思ったように、1つは一般的に古いプロジェクトを掘り下げるのにあまりにも多くの時間を費やしたくありません:) – red

0

、サーバー側含めるロジックは、ファイルだけではなく全体で起こるような全体のコードベースをファクタし直すことができ応用。

キャッシングをオンにして正しいヘッダーを設定すると、外部ファイルが既にキャッシュされていると、後で同じファイルが要求された場合でもブラウザは再ダウンロードを試みません。

0

変数に、特定のファイル(上記の例では "styles.css"など)のインポートを記録できます($ styles_loaded = true以上、$ LoadedImports ['styles'] = true)。この変数の値をすべてincludeにチェックインします。そうすれば、特定のファイルをインポートするかどうかを知ることができます。アンドレアスが提案したリファクタリング

0

ファイルをインクルードするときにPHPを使用して定数を定義することができます。これは、常にPHPやJavaScriptでロードする場合に限られます。

これは、PHPソリューションとして動作することがあります。

function checkJSLoad($var){ 
    if(!defined($var)){ 
     define($var, 1); 
     return false; 
    } else { 
     return true; 
    } 
} 

function javascriptLoad($location, $defined = ''){ 
    if(!$defined) { $defined = 'JS_' . $location; } 

    if(!checkJSLoad($defined)){ 
     return '<script type="text/javascript" src="'.$location.'"></script>'; 
    } 
} 

あなたはその後、ちょうどそのようにそれを呼び出すことができます。javascript_load( '/ jquery.js'、 'jqueryの'); jsファイルの正しいタグをエコーし​​ます。

あなたは、簡単なハックとして、おそらく

関連する問題