Динамический код jQuery: есть ли способ включить его в файл? - PullRequest
2 голосов
/ 12 сентября 2010

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

У меня есть <script="text/javascript">JQUERY CODE</script> вверху моей страницы. Часть моего кода динамична в том смысле, что она использует переменные PHP, например, при вызове Ajax URL предшествует <?php echo base_url(); ?>.

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

Одним из аспектов моего сайта является Google Maps. Я использую их повсюду. Опять же, части кода являются динамическими, из PHP. Тот же вопрос.

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

Ответы [ 3 ]

2 голосов
/ 12 сентября 2010

Так что ваши настройки в основном просто замены параметров для таких вещей, как карты Google?Если так, то почему бы просто не вызвать функцию, которая принимает объект JSON в качестве параметра.Пусть ваш сервер обработает некоторые данные JSON через запрос AJAX, передаст данные в функцию, и все готово.Меньше JS-кода для загрузки и намного более чистая настройка.

// site.js
function displayMap(params) {
  // code to display google map using values from params
  // for instance:
  var lat = params.lat;
  var long = params.long;
}  

Чтобы использовать это, сделайте что-то вроде этого:

$.get('ajax/mapdata.json?id=5', function(data) {
  displayMap(data);
  alert('Load was performed.');
});

Выведите JSON из своего приложения, создав что-то вроде этого:

{
  lat: 232
  long: 123
}

Надеюсь, это поможет!

0 голосов
/ 12 сентября 2010

Вы можете создать блок данных JSON на главной странице:

<script>
  var pageData = {
    something: 'whatever',
    somethingElse: [ 33.20, 19.02 ],
    moreStuff: false
  };
</script>

, а затем просто обратитесь к переменной "pageData" из вашего скрипта.

0 голосов
/ 12 сентября 2010

Ну, сделайте то же самое, что и на странице. Переименуйте файл .js в сценарий .php и включите в файл .php тот же код PHP, который вы использовали ранее. Затем в файле HTML используйте filename.php (не .js). Веб-сервер вызовет PHP на сценарии и отправит браузеру полученный JavaScript.

...