2012-09-12 80 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