Я должен относиться к прямым КИК называет иначе, чем запросов на страницу?


Я должен уйти в или нет?

Прямые вызовы КИК покраснел, когда метод возвращается. В любом случае, onRequestEnd остановит вывод отладочной возвращается для ajax запросов.

Сохранить, Если Заявление

Дополнительный поиск регулярного выражения на каждый AJAX-вызов. Прямой КИК вызовы возвращают быстрее. Прямой вызов КИК не может быть отредактирован.

Удалить, если заявление (внутренний код выполняется для всех запросов AJAX)

Прямой КИК называет значение хранится в переменной. AJAX-вызовы на страницы Вернуться быстрее. Все AJAX-запросы обрезаются.

Я с использованием ColdFusion 8.

<cfcomponent output=    "false">

<cfset this.name=   "AJAX Debug Output" />

<cffunction name=   "onRequestEnd"
        returnType= "void"
        hint=       "I run on the end of requests (how clever).">

    <cfargument name=   "targetPage"
                hint=   "Path from the web root to the requested page." />

    <cfif isAJAXRequest()>
        <cfsetting  showDebugOutput=    "false" 
                    enableCFOutputOnly= "true" />

        <!--- Response from CFC is already flushed to browser. Skip output. --->
        <cfif reFindNoCase( "\.cfc$" , targetPage ) eq 0>

            <!--- If AJAXResponse is not set, then generated content is response. --->
            <cfparam    name=       "request.AJAXResponse"
                        default=    "#getPageContext().getOut().getString()#" />

            <cfcontent  reset= "true" />
            <cfoutput>#trim( request.AJAXResponse )#</cfoutput>
            <cfabort />

        </cfif>

    </cfif>

</cffunction>

<cffunction name=   "isAJAXRequest" 
            output= "false"
            access= "private"
            hint=   "I check to see if the request came across with ajax headers">

    <cfif structKeyExists( getHTTPRequestData().headers , "X-Requested-With" )>
        <cfreturn true />

    </cfif>

    <cfreturn false />

</cffunction>

</cfcomponent>


442
4
задан 30 сентября 2011 в 07:09 Источник Поделиться
Комментарии
2 ответа

И, если вы используете CF в 9.0.1 вам не придется беспокоиться о выходных данных отладки на всех, на прямые запросы КИК. Начиная с 9.0.1, МК будет автоматически запрещать вывод отладки. (Слава Богу)

Несколько лет назад, Рей и я были хэширования, как целевой запрос через это заголовок, и придумали это:

<cfif structKeyExists(reqData.headers,"X-Requested-With") and reqData.headers["X-Requested-With"] eq "XMLHttpRequest">

Это работал великий, как и все из библиотек AJAX (это мы проверили) были через то же самое. То есть, пока в jQuery выйдет 1.6, в какой момент они создали пользовательский тип заголовка (jqXHR, я думаю), что они используют с просьбами.

3
ответ дан 2 октября 2011 в 12:10 Источник Поделиться

Если вы с использованием ColdFusion 9, вы можете использовать onCFCRequest разобраться с этим вопросом. Какая версия БФ вы используете?

6
ответ дан 30 сентября 2011 в 09:09 Источник Поделиться