Javascript 带有perl后端的Ajax应用程序-如何使用?
关于Perl+AJAX,比如,or和其他一些问题已经存在。他们已经2岁多了,我希望有一些新东西 问题是:Javascript 带有perl后端的Ajax应用程序-如何使用?,javascript,perl,Javascript,Perl,关于Perl+AJAX,比如,or和其他一些问题已经存在。他们已经2岁多了,我希望有一些新东西 问题是: 目前,使用Perl后端制作AJAX应用程序的首选方法是什么 是否有一些活动的和常用的Perl模块可以帮助构建基于AJAX的应用程序 对于通常的工作流程: if clicked this button (or changed this field.. etc), POST these data to the server, read the JSON answer, and upd
- 目前,使用Perl后端制作AJAX应用程序的首选方法是什么
- 是否有一些活动的和常用的Perl模块可以帮助构建基于AJAX的应用程序
if clicked this button (or changed this field.. etc),
POST these data to the server,
read the JSON answer,
and update this/these DIV(s) in a DOM... etc.
这个问题可以归为模糊的,但我真的迷路了,需要帮助:今天Perl世界中最常见的AJAX应用程序制作方法是什么
正在寻找帮助器模块,帮助我构建浏览器端javascript。
我发现:
- (但这是基于CGI的,IMHO不是Plack world的最佳选择)
var-arr=new-Array();
而不是my@arr
)
因此,寻找一个解决方案,我如何最小化(或者在理想世界中-完全消除)编写JavaScript代码的需要。不想写入我的模板
$('.clickableButton').click(function(e) {
.... etc... etc..
)}
但有点像:
$ajax->make_button( -onchange=>$url, -updatedom=>'#thisdiv", some_special_button_description_in_perl );
$tohead .= $ajax->gen_libs();
$tohtml .= $ajax->gen_html();
$jsdocready .= $ajax->gen_jsinitcode();
在我的模板中,$tohead
将只输出头部部分的$tohtml
,$tohtml
将进入正文,而$jsdocready
将作为JavaScript初始代码进入正文的末尾
当然,上面的例子很愚蠢,但希望能说明我的意思。简单地说:理想的解决方案是(可能不存在)完全消除编写JavaScript的需要,只有Perl代码才能生成所需的JS
因此,我特别提到了上述模块,因为它们确实有助于最小化JavaScript的编写。问题是——这些已经有两年没有更新了;(不幸的是,我不认识其他人。我使用CGI::Application作为基本框架,CGI::Application::Plugin::JSON将JSON数据返回到jQuery。寻找“ajax”这并不是您真正需要的。只需使用您选择的web框架,该框架具有良好的序列化功能,可以处理接受头等。例如and、or。不要编写编写编写Javascript的Perl,这只会让您感到悲伤。您得不到答案的原因不仅仅是问题的模糊性。问题空间是无限的y宽,具有多个攻角 让我们澄清一下,Ajax中的“x”不应该再被认为是XML的意思了。JSON显然更自然,而且不会遇到太多问题,所以我的所有建议都指向它 所说的已经是正确的。你根本不想弄乱服务器端代码,而是想采用一个框架。这不是因为在Perl中处理Ajax很难;这很简单。这是因为问题空间很快变得混乱,你最终会以无休止的小变化重复代码。因此—— Perl/服务器端 所有这些最终都会让你快乐。它们都有一个学习曲线。还有其他选择,但这些是最好的™.
- ()
- ()
- (对于HTML5/Websockets更喜欢Mojolicious)
-
- 许多Perl黑客都喜欢这个工具包;它似乎达到了Perl的最佳状态。我喜欢jQuery
-
- 我不是一个粉丝-他们在早期版本中有最糟糕的文档,并且在删除小文档时破坏了兼容性-但是在当前版本中它很受欢迎
-
- 这个,现在距离YUI很远的fork是客户端JS的800磅大猩猩。我个人不喜欢它,因为它没有优雅的退化,等等,但是它受到高度重视,并且非常犀利
- –JavaScript模板
- –YAWF
...
use strict;
use warnings;
#CGI is shipped along perl, I think
use CGI;
my $CGI = CGI->new();
my $return_string = '';
#From CGI documentation on CPAN
#http://search.cpan.org/~markstos/CGI.pm-3.55/lib/CGI.pm
$return_string .= $CGI->header;
$return_string .= $CGI->start_html('hello world');
$return_string .= $CGI->h1('hello world');
$return_string .= $CGI->button(-name => 'button_name',
-value => 'Click Me!',
#Javascript event if needed
-onClick => "do_something()"
);
$return_string .= $CGI->end_html;
print $return_string;
或者(因为我不喜欢后一种方法),您可以在perl上编写(自己手动生成):
使用严格;
使用警告;
#需要的标题,否则将返回错误
打印“内容类型:text/html\n\n”;
#返回0到100之间的随机数
我的$random_号码
use strict;
use warnings;
#Needed header, otherwise will return error
print "Content-type: text/html\n\n";
#return random number from 0 to 100
my $random_number = int(rand(101));
my $HTML_generated_string = qq|
<html>
<head>
<title>HTML generated manually with perl</title>
</head>
<body>
<h1>Hello world</h1>
Bla bla bla Heres the random number $random_number
</body>
</html>
|;
print $HTML_generated_string;