簡體   English   中英

查找是否在JSP中啟用/禁用了JavaScript

[英]Find if JavaScript is enabled/disabled in JSP

我有一個網頁,其中一部分是通過AJAX加載的,但是我也想在未啟用JavaScript的情況下使其工作。

所以,我寫的代碼為

<script>
    fetchCitiesAndDisplay ();
</script>
<noscript>
    <%
        out.print(Cities.getHtml ());
    %>
</noscript>

哪里

fetchCitiesAndDisplay()

是javaScript方法,它將獲取內容(執行Cities.java中的代碼)並顯示它。

Cities.java

是一個Java類,它將從數據庫中收集城市並生成要顯示的html內容。

禁用JavaScript時,一切都很好..因為不會執行ajax調用,並且僅會調用Cities.getHtml()。

但是,當啟用JavaScript時,也會執行Ajax調用,並且還會調用Cities.getHtml()。即使顯示由於標記而正確,Cities.java也會對相同數據進行兩次調用,並且吃了很多時間...

如何解決呢?

我想知道您是否不了解<noscript>工作方式。 它不會在您的服務器端模板中起作用,因此無論您是否最終在瀏覽器中啟用了javascript,您在其中放置的任何服務器端邏輯都將始終執行。

因此,這對我來說沒有太大的意義,因為無論打開或關閉javascript,總是會生成<noscript>內部的HTML。 它將始終在頁面中。 因此,如果它始終在頁面中,那么為什么在打開javascript時通過ajax來獲取它呢?

我必須同意@ jfriend00,無法確定是否使用1頁啟用了javascript

您可以使用javascript設置具有某些值的隱藏變量,當頁面提交時可以檢查並確定是否啟用了javascript。但這需要1個請求/響應周期,可能是您可以擁有一個臨時頁面將請求轉發到預期的頁面(具有上面討論的隱藏變量i)。

為什么不讓您的JavaScript代碼在頁面加載時加載一個很小的html / image / etc代碼段。 如果啟用了javascript,則可以看到該文件已被請求。 如果禁用該文件,則不會請求該文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM