5

CodeIgniter を使用して Web アプリケーションを構築しています。

私が抱えている問題は、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 拡張機能/アプリの使用
  • 再起動したアパッチ
  • Vagrant の共有が正しく機能していることを確認しました (ファイルは、Mac で実行している仮想 centos インスタンスと同じです)
  • Chrome に別のバージョンのファイルをロードさせようとしました (ファイルの URL の末尾に ?2 を追加: localhost:8080/app/assets/js/main.js?2)

その他の注意事項:

  • これは Firefox と Safari でも発生するため、問題は Apache にある可能性がありますが、php の oci8 拡張機能を他の OS 用にコンパイルすることができないため、この理論をテストすることはできません。

編集:

私が試したその他のこと

  • ファイルの名前を変更します(少しの間は機能しますが、問題が再び発生し始めます。)
4

1 に答える 1

2

名前を変更すると動作し、その後動作を停止する場合、それはいかなる種類のキャッシュ (「深刻に壊れたもの」を除く) でも、ファイルを変更するもの (BOM、不正な CR など) でもありません。

しかし、ファイルが機能すると推測していますが、「しばらくして」ではなく、「再度保存した後」に機能しなくなり、非常にマイナーで無関係な変更のように見えます

この場合は、不正な CR または奇妙な EOF 処理に対処している可能性があります。ディスク上のファイルを別のエディター (理想的には 16 進エディター) でチェックしたり、最も単純なテキスト エディターで開いたりしてみてください。

ファイルの最後の文字としてそのままの CR がある場合、一部のエディターとプラットフォームは、ファイルを再度読み書きするたびに 2 つの「奇妙な文字」(実際には別の LF と別の不正な CR) を追加します。そして、それらの同じエディターそれらの文字を表示しないため、それらのエディターからそれらを削除することはできません.

更新: 別の明確な可能性は、正しく検出されない「隠された」UTF-8 文字 (またはそのフラグメント) があることです。次に、次のようなことが起こります。

予期しないエンコーディングの変更により、Visual Studio 2008 プロジェクト ファイルが読み込まれない

...そして、取得している奇妙な文字は、エンコーディング エラーのUTF8記号であることに注意してください。これは、Chromeが入力の予期しない終了を検出する理由も説明します。

コードの最後の数行からファイルの最後までをやみくもに選択し、選択を削除してから書き戻してみてください。

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

保存します。これで問題が解決するはずです。奇妙な文字が存在する場合は、「occurred」以降の 16 進エディターで確認してください。

于 2012-09-12T19:57:27.657 に答える