2012-11-19 67 views
0

我正在開發使用Dreamweaver CS6(帶PhoneGap)的移動應用程序,jQuery Mobile和JavaScript將收集用戶輸入的形式數據,將數據轉換成JSON對象並將其發送到HTML一個python web服務。移動應用程序的目的是讓用戶創建一個食品訂單,然後發送到餐廳。我想詢問SO社區,這將是處理創建訂單邏輯的優雅方式。目前,該邏輯被由JavaScript在HTML頁面中所定義,例如以下(截斷爲了簡潔):加載動態JavaScript /使用jQuery移動與PhoneGap的

JavaScript的:

var burgerType; //defines burger type eg.cheeseburger,hamburger 
    var burgerQueue = new Array(); //holds completed burgers 

    //detects if cheeseburger 
    $("#cheeseburger").click(function() { 
     burgerType="cheeseburger"; 
    }); 

    //detects if hamburger 
    $("#hamburger").click(function() { 
     burgerType="hamburger"; 
    }); 

HTML:

<div data-role="content"> 
    <ul data-role="listview" data-theme="e" id="burgers"> 
     <li id="cheeseburger"><a href="#toppings">Cheeseburger</a></li> 
     <li id="hamburger"><a href="#toppings">Hamburger</a></li> 
    </ul> 
    </div> 

截圖:點擊漢堡包帶你到a screen that let's you choose the toppings,沒有包括它,因爲不認爲它是相關的。

我意識到這可能是一種非常糟糕的處理邏輯的方式,因爲如果餐廳菜單發生變化,我將不得不修改應用程序,將其重新發布到它們各自的市場(Play,iTunes等),並讓用戶更新它。我想要做的最後一件事是由於錯誤或更改而不得不不斷更新應用程序,從而使用戶感到沮喪。我知道我可以通過使用駐留在應用程序目錄中的外部JavaScript庫部分分離HTML以外的邏輯,但這對常量更新問題沒有幫助。我會做了直接的應用程序鏈接到移動應用頁面的Web服務器上(所以我所做的更改會立即看到不更新應用程序),但我讀了另一個SO發佈蘋果守門不發佈基本應用只是一個包裹在應用程序中的網頁。我在看Django的web框架和思考它可能是我想要的東西,但不知道這是爲什麼,我與編碼大師在這裏SO詢問得到什麼我應該做的想法。

回顧一下:試圖動態地生成用戶界面和使用jQuery/JavaScript的不令人沮喪的用戶提供不斷更新編碼邏輯。 (有點像jQuery讓你熱鏈接到他們的CDN託管的庫)。我意識到這可能會讓人困惑,我會澄清任何問題。

回答

0

您可以將單個事件綁定到多個元素:

$("#burgers").on("click", "a" function() { 
    var li = $(this).parent(); 
    burgerType = li.attr("id"); 

    $.mobile.changePage("#toppings"); 
    return false; 
}); 

然後你只需要生成數據列表元素,可能是基於Ajax調用。對於這樣的事情,我通常會在應用程序啓動時在後臺進行ajax調用,並保存該調用的以前結果,以便連接更新不會減慢應用程序啓動的速度。

0

對於這種事情,你會更好使用如jQuery移動,將從頁面移動到頁面無需重新加載任何東西,而你只有一個真正的HTML文檔的AJAX導航框架。

+0

思想的jQuery移動和jQuery是相同的,已經在使用它,但。希望能夠動態導入綁定到UI的JavaScript代碼,如果可能的話。 – user1347648