从服务器端将数据传递给javascript的最佳做法是什么?

时间:2011-11-22 22:46:46

标签: javascript

我知道公开Web服务是一个明显的选择,还有其他快速方法吗?

2 个答案:

答案 0 :(得分:2)

这个问题过于笼统,不能以任何有用的方式回答。但话说:现在很多人都在使用JSON进行数据交换。如果你愿意使用jQuery或其他库,那么使用AJAX来获取JSON并采取行动是非常容易的。否则,我想用普通的JavaScript也不难。

答案 1 :(得分:1)

你的问题非常模糊,所以我会尝试在触发快乐mod之前回答它(甜蜜的声誉点!)

一个选项是Ajax。这允许您使用PHP脚本

向服务器询问信息

客户端(HTML / Javascript)[1]

<html>
 <head>
  <script type="text/javascript">
   function loadXMLDoc(){
    var xmlhttp;
    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    }
    else{// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function(){
     if (xmlhttp.readyState==4 && xmlhttp.status==200){
       console.log(xmlhttp.responseText);
     }
    }
    xmlhttp.open("GET","ajax_info.txt",true);
    xmlhttp.send();
   }
  </script>
 </head>

它看起来令人生畏,但你所做的只是在服务器上GETajax_info.txt中的内容,当你确实得到它时(onreadystatechange)写出来我(console.log)。

您可以使用上面的内容并进行调整,而不是读取文本文件,而是读取PHP文件。这样你就可以要求它执行一个PHP脚本,它读取服务器的内容(服务器类型,数据库元素......)并将其返回给用户。这是我如何做到的(我使用Dojo而不是纯粹的javascript)

在客户端:

dojo.xhrGet({
  url: 'getUser.php',
  handleAs: "text",
  content: {
    title: "Mr. "
  },   
  load: function(data) {
    console.log(data);
  }
}
服务器上的

('getUser.php'):

<?php
  echo $_GET['title'] . get_current_user();
?>

服务器将连接'Mr.'与当前用户一起将其返回给客户端,该客户端将打印出类似的内容

  

先生。 WWW的数据

最后另一种方法是直接嵌入到javascript / html中,所以当你加载页面时,服务器会自动更新源代码(警告,这需要相当多的调整)

index.html / index.php [2]

<html>
  <head></head>
  <body class="page_bg">
    Hello, today is <?php echo date('l, F jS, Y'); ?>.
  </body>
</html>