Как получить информацию о сервере в javascript? - PullRequest
0 голосов
/ 04 августа 2009

Я не знаю, как задать этот вопрос, поэтому я собираюсь смоделировать то, что мне нужно, некоторые разработчики делают то, что мне нужно, отрисовывая 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-адрес по объекту местоположения и т. Д. С помощью JavaScript. Надеюсь, вы понимаете, что я имею в виду ...

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

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

Ответы [ 4 ]

1 голос
/ 05 августа 2009

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

EDIT:

Как я уже сказал в своем комментарии, я не думаю, что вы хотите загружать дополнительные 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);
...
1 голос
/ 04 августа 2009

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

Скажем, вам удается извлечь объекты данных 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 на сервере.

1 голос
/ 05 августа 2009

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

$.get("urls.php", { operation: "post_handler" },
    function(data){
        $.ajax({
            url: data,
            data: eventData,
            success: function(){
                alert("Post successful");
            }
        });
    });
1 голос
/ 04 августа 2009

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

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

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

Greetz

back2dos

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...