我不知道如何问这个问题,这就是为什么我要模拟我需要的东西,一些开发人员通过使用php渲染javascript来制作我需要的东西。一个简单的示例文件如下所示:
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。这只是一个简单的例子当然我可以在这里硬编码发布网址,或者通过javascript获取位置对象等网址我希望你明白我的意思......
编辑:很抱歉我使用的条款存在混淆,它只是从我的应用程序中获取一些信息并动态地写入我的javascript。我不是指彗星或数据编码等。
我想知道的是如何在javascript文件上使用服务器端数据(如果有任何方法)。就像我的示例中的php方法一样,它只是回显一个来自我的应用程序的字符串。有没有办法通过javascript库或框架来做到这一点,比如你分配vars并在该模板系统中使用它的模板引擎。希望现在更清楚了。
答案 0 :(得分:1)
我不确定我知道“推”是什么意思...如果它是真实的server push,你应该看看comet服务器......
另外,对我来说还不清楚“纯粹的js技术”是什么......你可以在没有jQuery的情况下做到这一点......但是纯JS,因为主要用于操作DOM的语言当然不够用。你需要类似AJAX的方法......但是有一个关于推送HTML5的提议,但是,是的,this is gonna take some time ......
所以我希望这会有所帮助......但也许你应该澄清一下你的问题,我相信你会得到更好的答案...... :)
格尔茨
back2dos
答案 1 :(得分:1)
=================编辑:新的潜在答案=====================
假设您设法从服务器检索JavaScript数据对象,您是否希望将您在HTML标记中获得的JavaScript数据注入客户端?
如果是这种情况,您可以查看IBDOM:http://ibdom.sf.net/
我写了这篇文章,我们已经在很多网站上制作了几年。
=================下面的旧答案====================
所以你希望“eventData”成为可以被JavaScript使用的“东西”。
我建议先在PHP中查看JSON:
[删除了PHP中JSON的链接,不需要]
然后您的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:”字段的值将成为PHP在服务器上生成的JSON对象图。
答案 2 :(得分:1)
您可以使用.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");
}
});
});
答案 3 :(得分:1)
是的,有一种方法,但它很奇怪。您可以使用jaxer server。它允许您在服务器上运行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);
...