2014-12-24 3 views
0

Я создал html-страницу, которая отображает по-разному в зависимости от параметра 'resourceType'. ResourceType может быть IO/CPU/STORAGE и т. Д. Я использовал этот дизайн для повторного использования, поскольку у нас одинаковый макет для всех диаграмм, за исключением того, что входы в диаграмму отличаются на основе resourceType.JQUERY LOAD не может загрузить тот же html снова

<script> 
    require(['../js/viewmodel/db-resource-analyze']); 
</script> 

     <div class="oj-row" id="pageContent"> 


      <div class="topchartRegionDiv"> 

.....

  </div> 
     </div> 

Теперь я загрузить эту страницу из моей домашней страницы, которые имеют вертикальные вкладки (например, в меню слева) по щелчку лепестка, я загружаю мой страница динамически с помощью JQuery нагрузки

window.paramObj = 
       { 
        resType: "cpu" 
       }; 


$('#cpuContent').load("db-analytics-resources-home.html", function(responseTxt, statusTxt, xhr) { 
            if (statusTxt == "success") 
             alert("External content loaded successfully!"); 
            if (statusTxt == "error") 
             alert("Error: " + xhr.status + ": " + xhr.statusText); 
           }); 

в следующий раз пользователь нажимает на вкладке IO ... я сделать такую ​​же операцию, но с разным параметром

window.paramObj = 
       { 
        resType: "io" 
       }; 
$('#ioContent').load("db-analytics-resources-home.html", function(responseTxt, statusTxt, xhr) { 
            if (statusTxt == "success") 
             alert("External content loaded successfully!"); 
            if (statusTxt == "error") 
             alert("Error: " + xhr.status + ": " + xhr.statusText); 
           }); 

Первая загрузка происходит без каких-либо проблем, но последующая загрузка не происходит, а страница становится пустой. Я подозреваю, что страница кэширована и не загружена. Как обеспечить перезагрузку кеша с загрузкой JQUERY. Любые указатели?

ответ

0

Попробуйте Stop jQuery .load response from being cached

$.ajaxSetup ({ 
    // Disable caching of AJAX responses 
    cache: false 
}); 

Как отмечает парень, если функции удобства, такие как .load, .loadJSON и т.д. не делать то, что вам нужно, используйте функцию .ajax и вы можете найти много варианты конфигурации там, которые, скорее всего, сделают то, что вам нужно

+0

Пытались, но не помогает .... Я не пытаюсь вызвать скрипт явно на нагрузке() обратного вызова –

+0

Попробуйте, что предлагает @Oleg, это также должно предотвратить вызов AJAX от того, кэшируются. Также вы правильно строите селектор jquery, когда вы делаете $ ('# ioContent'), убедитесь, что вы не делаете $ ('ioContent'), обратите внимание на отсутствующий # – Carlton

0

вы можете попробовать этот метод. это предотвратит кеширование

$ ('# ioContent'). нагрузки ("DB-аналитика-ресурсы-home.html?" + Math.random(), функция() {})

+0

Спасибо за ответ. Я тоже это пробовал ... но никакой помощи. Я мог бы решить эту проблему, передав JS-скрипт в качестве параметра для обратного вызова загрузки JQUERY и вызвав его там при успешном загрузке. –

0

Большое спасибо для всего ответа. Я мог бы решить эту проблему, передав JS-скрипт в качестве параметра для обратного вызова загрузки JQUERY и вызвав его там при успешной загрузке html-документа.

smthing так:

     $('#' + resType + 'Content').load(url, function(responseTxt, statusTxt, xhr) { 
           if (statusTxt == "success") 
           { 

            alert("External content loaded successfully!...calling JS"); 
            new self.dbResourceAnalyze(); 
           } 
           if (statusTxt == "error") 
            alert("Error: " + xhr.status + ": " + xhr.statusText); 


          }); 
Смежные вопросы