2012-09-12 109 views
5

我正在使用CodeIgniter構建一個Web應用程序。Chrome加載舊版本的JavaScript文件

說我有問題是,Chrome是我的加載JavaScript文件main.js的舊版本

我的代碼:

$(document).load(function(){ 

/****************************************** 
*           * 
*    AJAX FUNCTIONS    * 
*           * 
******************************************/  

function deactivate_dept_member(user_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('/ajax/deactivate_dept_member'), 
     { 
      'user_id':usr_id, 
      token_name:token_hash 
     }, 

     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 

function activate_dept_member(usr_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('/ajax/activate_dept_member'), 
     { 
      'user_id':usr_id, 
      token_name:token_hash 
     }, 

     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 

function get_dept_users_for_session(dept_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('ajax/get_dept_users_for_session'), 
     { 
      "dept_id":dept_id, 
      token_name:token_hash 

     }, 

     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 

} 

function invite_dept_user(email_address, first_name, last_name, admin, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('ajax/invite_dept_user'), 
     { 
      "email_address":email_address, 
      "first_name":first_name, 
      "last_name":last_name, 
      "admin":admin, 
      token_name:token_hash 
     }, 
     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 

function get_department_members(dept_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('ajax/det_department_members'), 
     { 
      "dept_id":dept_id, 
      token_name:token_hash 
     }, 
     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 




/****************************************** 
*           * 
*    UTILITY FUNCTIONS   * 
*           * 
******************************************/ 
function site_url(add_on) 
{ 
    return 'http://localhost:8080/app/index.php'+add_on; 
} 

function getUserTypeString(user_status) 
{ 
    switch(user_status) 
    { 
     case "1": 
      return "Invited"; 
     case "2": 
      return "Active"; 
     case "3": 
      return "Inactive"; 
     default: 
      return ""; 
    } 
} 


function isDepartmentAdmin(user_role) 
{ 
    if(user_role == 2){ 
     return true; 
    } 
    return false; 
} 

function get_error_message(error_code) 
{ 
    switch(error_code) 
    { 
     case "20130": 
      return 'The username already exists'; 
     default: 
      return 'A general error occured'; 
    } 
} 


}) 

Chrome瀏覽器怎麼說的是我的資料來源:

/****************************************** 
*           * 
*    AJAX FUNCTIONS    * 
*           * 
******************************************/  

function deactivate_dept_member(user_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('/ajax/deactivate_dept_member'), 
     { 
      'user_id':usr_id, 
      token_name:token_hash 
     }, 

     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 

function activate_dept_member(usr_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('/ajax/activate_dept_member'), 
     { 
      'user_id':usr_id, 
      token_name:token_hash 
     }, 

     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 

function get_dept_users_for_session(dept_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('ajax/get_dept_users_for_session'), 
     { 
      "dept_id":dept_id, 
      token_name:token_hash 

     }, 

     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 

} 

public function invite_dept_user(email_address, first_name, last_name, admin, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('ajax/invite_dept_user'), 
     { 
      "email_address":email_address, 
      "first_name":first_name, 
      "last_name":last_name, 
      "admin":admin, 
      token_name:token_hash 
     }, 
     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 

public function get_department_members(dept_id, token_name, token_hash, callback) 
{ 
    $.post(
     site_url('ajax/det_department_members'), 
     { 
      "dept_id":dept_id, 
      token_name:token_hash 
     }, 
     function(result){ 
      var response = jQuery.parseJSON(result); 
      callback(response); 
     } 
    ); 
} 




/****************************************** 
*           * 
*    UTILITY FUNCTIONS   * 
*           * 
******************************************/ 
function site_url(add_on) 
{ 
    return 'http://localhost:8080/app/index.php'+add_on; 
} 

function getUserTypeString(user_status) 
{ 
    switch(user_status) 
    { 
     case "1": 
      return "Invited"; 
     case "2": 
      return "Active"; 
     case "3": 
      return "Inactive"; 
     default: 
      return ""; 
    } 
} 

function isDepartmentAdmin(user_role) 
{ 
    if(user_role == 2){ 
     return true; 
    } 
    return false; 
} 

function get_error_message(error_code) 
{ 
    switch(error_code) 
    { 
     case "20130": 
      return 'The username already exists'; 
     default: 
      return 'A general error occured'; 
    } 
} 


����������������� 

我已經做過的事情並解決問題

    使用Chrome開發者工具
  • 使用LiveReload擴展程序/應用
  • 重啓動Apache的
  • 證明:對於流浪共享工作正常(該文件是我已經運行,因爲它的虛擬CentOS的實例相同
  • 禁用緩存是在我的Mac上)
  • 試圖獲得鉻加載文件的不同版本(在URL的末尾添加一個?2到文件:localhost:8080/app/assets/js/main.js?2 )

其他注意事項:

  • 這也發生在Firefox和Safari中,所以問題可能出在Apache上,但我無法測試這個理論,因爲我無法獲得oci8擴展程序以供任何其他操作系統編譯。

編輯:

更多的事情我已經試過

  • 重命名文件(將一點點工作,但問題開始再次發生。)
+4

您是否試過在隱身模式下查看網站? – SomeKittens

+0

儘管隨機,你的文件的名稱(在案例中)是一樣的?,請記住在Windows Main和main中是相同的,但不在Linux中。你有沒有試過清理緩存,而不是隻禁用它? – Rafael

+0

同樣的事情發生在隱身模式和案件是一樣的。我在禁用之前清理了緩存。 – nicks451

回答

2

如果它的工作原理在重命名後,然後停止工作,然後它不能是任何類型的緩存(除非可能「破壞一個「),也不修改文件(例如, BOM,流氓CR等)。

但我猜測,文件工作,然後它停止工作不是「一段時間後」,而是「你保存它再次做什麼似乎是一個非常小的和無關的變更後的」。

如果出現這種情況,您可能是在處理流氓CR或怪異的EOF處理:嘗試使用其他編輯器(十六進制編輯器)檢查磁盤上的文件,或者使用最簡單的文本打開它你有編輯器。

如果你有一個純粹的CR作爲文件的最後一個字符,一些編輯和平臺每次你再次讀/寫文件時都會添加兩個「奇怪的字符」(實際上是另一個LF和另一個流氓CR)。並且那些相同的編輯不會向您顯示這些字符,因此您將無法從這些編輯器中刪除它們。

UPDATE: 另一個明顯的可能性是你有未正確檢測到一個「隱藏」 UTF-8字符(或其片段)。然後事情非常喜歡這種情況:

Visual Studio 2008 project file does not load because of an unexpected encoding change

...並發現,你所得到的奇怪的字符是正是的UTF8意義的編碼錯誤,這也可以解釋爲什麼Chrome檢測到某個輸入意外結束

嘗試從代碼的最後幾行盲目選擇到文件的末尾,刪除選擇,然後將它寫回:

  return 'A general error occurred'; 
     } 
    } 
}) 
/* END OF FILE */ 

和保存。這應該來清除的東西。如果出現任何奇怪的字符,請從'發生'開始檢查十六進制編輯器。

+0

我認爲這正在接近正在發生的事情的核心。我在十六進制編輯器中查看了該文件,但似乎沒有任何流氓回車或文件標記結束。但現在,當試圖加載該文件時,我得到了一個「意外的輸入結束」錯誤 – nicks451

+0

我現在確信你的編輯對你不忠,我相信我也知道如何。編輯答案。 – LSerni

+0

嗯,我的Mac上的所有文本編輯器都會發生這種情況,崇高的文本,vim甚至可以發送文本。 Textedit似乎是唯一一個沒有破壞的文件,但它在文件末尾添加了一個無效的字符。 – nicks451