2016-12-10 2 views
1

Хорошо, так что это будет doozy!jQuery динамическая загрузка страницы - Другой javascript поврежден, и как мне импортировать специфичные js страницы?

ПРИМЕЧАНИЕ. Это будет для рабочего стола Windows, работающего с sqlite и mongoose, поэтому время загрузки не так важно (для меня пока), и не будет никакого подключения к нелокальному серверу.

Я искал повсюду и не смог найти ничего, что является специфичным к моей ситуации, большинство, кажется, чтобы загрузить в IFRAME или использовать эти рамки, представленной css-tricks.com

Я использую мой собственный (sorta). Библиотеки, которые я использую, - это bootstrap 3, jquery 2.1.4, jqueryui 1.12.1 и Bootstrap-select v1.12.1

index.php будет обладать всем содержимым, динамически загружаемым в обертку div # и будет выступать в качестве заголовка всей загрузки страницы. Это скелет моего index.php. В sidebar.html ссылки имеют атрибут «pagetoload», JQuery ловит событие щелчка и загружает данные в сНу # обертке

<body> 
     <?php require_once("res/sidebar.html"); ?> 
     <div class="container-fluid" id="body-container"> 
     <div id="wrapper" style="border:1px black solid;"> 
      <!-- dynamic page content will be loaded here--> 
     </div> 
     </div> 

     <script src="res/js/jquery.js"></script> 
     <script src="res/js/jquery-ui.js"></script> 
     <script src="res/js/bootstrap.js"></script> 
     <script src="res/js/bootstrap-select.js"></script> 
     <script src="res/js/menu-handling.js"></script> 



    <script> 
    //index.php js 
    $(document).ready(function() { 

     $.get("home.php", function (data) { 
      $("div#wrapper").html(data); 
     }); 


     $("a.loader").click(function (e) { 
      e.preventDefault(); 
      $.get($(this).attr("pagetoload"), function (data) { 
       $("div#wrapper").html(data); 
      }); 
     }); 
     //dateFormat 10/dd/yy to constrain input only to october 
     //get current month number and constrain to prevent additions to wrong month 
     $("#date-input").datepicker({ 
      dateFormat: "12/dd/yy" 
      , constrainInput: true 
     }); 
     $("#date-input").focus(function() { 
      $(this).datepicker("show"); 
     }); 

    }); 
</script> 
</body> 

Каждая страница, которая будет динамически загружены в идеале содержать минимальный PHP и содержать только необходимые html/css/js для этой страницы. Моя проблема, например, после загрузки одной страницы, такой как my dbviewer.php (которая содержит js и дает мне предупреждение асинхронной загрузки) и перезагрузки home.php в контейнер, javascript больше не работает. Javascript для каждой страницы - встроенные теги.

Я пробовал накладывать все javascript для каждой динамической страницы в index.php, чтобы все было загружено при запуске, но возникает проблема, что она все равно не сработает. Каков наилучший способ сделать эту работу с динамической загрузкой, имея каждую модульную страницу. Я пытался исследовать это, но только вещи, как использование hashTag вещь появляется.

Если вам нужно больше кода из моих файлов, пожалуйста, напишите, я думаю, что я объяснил это достаточно, чтобы вы поняли, потому что нет ничего необычного, выходящего за пределы index.php. Просто скрипты внутри каждой динамической страницы, которая в основном взаимодействует с dom элементы, использующие jquery.

+0

вашего приложения SPA, одного приложения страницы, и в этом случае я предлагаю вам идти с погрузкой всех JavaScript в «мастерах» 'index' странице ,, а затем для каждой дополнительной страницы просто do '$ .ajax' просит ваши php-файлы, и все! –

+0

проблема, с которой вы сталкиваетесь, заключается не в том, как перенастроить приложение, и в php-файлы, а в javascript/jQuery-программирование обратного вызова, или как сделать некоторые манипуляции JS/data после того, как вы потянете некоторые данные на странице X, я прав? –

+0

Я пробовал иметь index.php загрузить все js и любые js, такие как отображение динамической формы для вставки в db, не работает, если я это делаю, но он делает, если js встроен со страницей. – Polycoding

ответ

0

Я оставляю этот ответ, потому что он вам помог, а также может быть полезным как общее правило для любого разработчика, который может оказаться в подобной ситуации.

Итак, при разработке приложения вам необходимо отделить все javascript, css-ресурсы в главном файле, чтобы разместить их на первой странице pageload. (возможно, это событие лучше для производительности)

Все остальные файлы сгенерированных сервером (php, node.js и т. д.) файлы, которые у вас есть, являются источником данных только для страниц, на которые пользователи нажимают или приземляются .. или, по крайней мере, пытаются ..

после этого вы должны вызвать

$.ajax().callback

функции на внешнем интерфейсе, чтобы сделать работу на каждой странице. Такие, как эффекты страницы, манипуляции с данными и т. Д. Обратный звонок очень важен, потому что когда данные были загружены действительно!

веселит, к

 Смежные вопросы

  • Нет связанных вопросов^_^