Вопрос

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

my_javascript_file.php

<?php include "my_class.php"; ?>

$(document).ready(function(){    

  $.ajax({
    url: "<?php $my_obj->post_url(); ?>",
    success: function(){
      alert("Post successful")
    }
  });
};    

который выводит следующие:

$(document).ready(function(){    

  $.ajax({
    url: "/post_handler.php",
    success: function(){
      alert("Post successful")
    }
  });
};    

отсюда возникает мой вопрос: есть ли какой-нибудь способ достичь этого с помощью чистых методов js?

Спасибо, Синан.

P.S.Это всего лишь простой пример, конечно, я могу жестко закодировать URL-адрес публикации здесь или получить URL-адрес по объекту location и т.д. С помощью javascript, я надеюсь, вы понимаете, что я имею в виду...

Редактировать: Извините за путаницу в терминах, которые я использовал, это просто получение некоторой информации из моего приложения и динамическая запись в мой javascript.Я не имею в виду комету, кодирование данных и т.д.

Что я хочу знать, так это как использовать данные на стороне сервера в файлах javascript (если есть какой-либо способ).Подобно тому, что делает php-метод в моем примере, он просто повторяет строку, которая поступает из моего приложения.Есть ли способ сделать это с помощью библиотеки javascript или фреймворка, например шаблонизатора, которому вы назначаете переменные и используете его в этой системе шаблонов.Надеюсь, теперь это более понятно.

Это было полезно?

Решение

Да, есть способ, но он странный.Вы можете использовать сервер jaxer.Это позволяет вам запускать javascript на сервере.

Редактировать:

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

var myObject = {
var1 : '',
var2 : 0,
init : function(options) {
    var1 = options.var1;
    var2 = options.var2;

    $('#someElem').click(function() {
        // do stuff
        return false;
    };
}

};

а затем вызовите это следующим образом со своей html-страницы

<head>
<script type="text/javascript">
    var options = {
        var1 : <?php echo "hello" ?>,
        var2 : <?php echo 1 ?>
    }
    myObject.init(options);
...

Другие советы

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

кроме того, для меня неясно, что такое "чистые методы js" ...конечно , вы можете сделать это без jQuery ...но чистого JS, как языков, в первую очередь предназначенных для управления DOM, конечно, будет недостаточно ...вам нужны подходы , подобные AJAX ...однако было предложение для push в HTML5, но да, это займет некоторое время ...

так что я надеюсь , что это поможет ...но, может быть, вам следует немного прояснить свой вопрос, я уверен, вы получите лучшие ответы ...:)

приветствие

back2dos назад 2dos

Вы могли бы запросить у сервера URL-адрес, используя .получить или . "аякс " (предполагая, что ваш urls.php обработает это должным образом и вернет соответствующую строку - или JSON, и в этом случае вы также можете использовать .Получить JSON - с указанным в нем URL-адресом).Например (непроверенный, конечно):

$.get("urls.php", { operation: "post_handler" },
    function(data){
        $.ajax({
            url: data,
            data: eventData,
            success: function(){
                alert("Post successful");
            }
        });
    });

================= Редактировать:Новый Потенциальный Ответ =====================

Допустим, вам удается извлекать объекты данных JavaScript с сервера, хотите ли вы внедрить полученные вами данные JavaScript в свою HTML-разметку на стороне клиента?

Если это так, вы могли бы взглянуть на IBDOM: http://ibdom.sf.net/

Я написал это, мы разрабатывали это на нескольких сайтах в течение нескольких лет.

================= Старый Ответ Ниже ====================

Итак, вы хотите, чтобы "EventData" было "чем-то", что может быть использовано JavaScript.

Я бы рекомендовал сначала взглянуть на JSON в PHP:

[УДАЛЕНА ссылка на JSON в PHP, не нужна]

Тогда ваш PHP-код может напоминать это:

<?php include "my_class.php"; ?>

$(document).ready(function(){    

  $.ajax({
    url: "<?php $my_obj->post_url(); ?>",
    data: <?php json_encode ($my_obj->getData()); ?>,
    success: function(){
      alert("Post successful")
    }
  });
};

Итак, идея здесь в том, что значение вашего поля "data:" станет графом объектов JSON, сгенерированным PHP на сервере.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top