2016-10-17 67 views
0

標題說明了一切。我正在開發的項目不是一個單一的頁面應用程序,也沒有任何暗示任何複雜的數據流或AJAX請求,但我想保持我的代碼清潔,避免錯誤以及不必要地引發不會發生的功能要在應用程序的頁面上使用,所以我需要考慮它的體系結構。在特定頁面上執行特定JS腳本的最佳實踐

試想一下,我們宣佈一個應用程序的命名空間:

var MYAPP = MYAPP || {} 

然後我會初始化包含腳本使用頁面上的模塊:

var currentSection = w.location.pathname; 

switch (currentSection) { 
    case "/": 
    return MYAPP._home = new _Home(); 
    case "contacts": 
    return MYAPP._contacts = new _Contacts(); 
    default: 
    return console.log('Unknown template'); 
} 

在上面的例子中我使用URL的一部分來定義哪個模塊將被使用,但我覺得它不是很可靠,因爲如果我們改變URL,那麼我們也需要相應地改變一些代碼,否則它將不起作用。一個那是在PHP文件定義的模板處理另一種方式,所以它可能是這樣的:

<script> 
    var MYAPP = MYAPP || {}; 
    MYAPP.template = 'contacts'; 
</script> 

並略微改變的代碼,我在前面的例子中使用:

switch (MYAPP.template) { 
    case "/": 
    return MYAPP._home = new _Home(); 
    case "contacts": 
    return MYAPP._contacts = new _Contacts(); 
    default: 
    return console.log('Unknown template'); 
} 

有沒有更好的解決方案?如果信息很重要,我們在後端開發中使用Apache2 + PHP。

回答

0

該模塊會當你定義使用<script src=...類將被加載的js文件,整個文件和它的所有功能,並在文件中使用

。我沒有看到你如何完成只使用你的代碼加載一個模塊或類 - 我只看到你正在定義哪些對象正在創建。

這是我如何指定包含哪些js文件/類。我用了三個部分的過程基於定義

包括PHP,CSS和JS

在我index.php我有

define("module1", true); 
define("module2", true); 
require("includes.php"); 

includes.php文件在同一目錄的index.php文件(一個也是在PHP路徑)。在這裏面我有:

<?php 
require_once('paths.php'); 
if (defined("module1")){  
    require_once('module1.php'); 
?> 
    <script src="<?php echo APP_PATH ?>/js/module1.min.js"></script> 
<?php 
} else if (defined("module2")) {  
    require_once('module2.php'); 
?> 
    <script src="<?php echo APP_PATH ?>/js/module2.min.js"></script> 
<?php 
} 
?> 
paths.php

,這是位於下方的根,並在PHP的路,我有

<script> 
    var APP_PATH = "www.mysite.com"; 
</script> 

這樣一來,我的應用程序路徑信息是在一個文件中維護。我也在這個文件中定義了我的php路徑,並以我的php文件爲前綴,但這超出了你的要求。

相關問題