使用perl后端的Ajax应用程序 - 如何?

kob*_*ame 15 javascript perl

已经有关于Perl + AJAX的问题,比如这里,这里这里以及其他几个.他们已经超过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 update this/these DIV(s) in a DOM... etc.
Run Code Online (Sandbox Code Playgroud)

这个问题可以归类为模糊,但我真的迷失了,需要帮助:今天在Perl世界中制作AJAX应用程序的最常用方法是什么.

寻找帮助我构建浏览器端javascript的帮助程序模块.

我找到了这些:

这些模块多年来一直没有更新.它们是否稳定并且在使用中?或者他们被弃用了,还有更好的方法吗?(对于现代Perl技术 - 如Plack).

UPDATE

当我读到答案时,我认为主要问题可能在于我的英语.我不知道如何正确表达自己.

我知道Perl.也许我不是专家,但我写了几千行代码.我认识Dancer,并且已经在Mojo ...... :: Lite中编写了一些应用程序.知道JSON {:: XS},我知道AJAX是如何工作的.

现在(由于某种原因)我更喜欢使用Mason2,使用Mason :: Plugin :: RouterSimple和其他几个CPAN模块和Moose.Catalyst,Jifty对我的需求来说太大了.

回到问题:

我最喜欢的JS框架是jQuery,我在几个项目中使用它,用于模态窗口,手风琴,标签等.

我的主要问题正是在Sismetic的回答中.我不想写JavaScript.不喜欢它.(不太了解它,并讨厌我必须写的东西,var arr = new Array();而不是my @arr)

因此,寻找解决方案,我如何最小化(或在理想世界 - 完全消除)编写JavaScript代码的需要.不想写入我的模板

$('.clickableButton').click(function(e) {
      .... etc... etc..
)}
Run Code Online (Sandbox Code Playgroud)

但是像这样:

 $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();
Run Code Online (Sandbox Code Playgroud)

我的模板中的一个只会$tohead在head部分输出(所以包含jQuery),$tohtml将进入body,并将$jsdocready作为JavaScript init代码进入body 的末尾.

在Offcourse,上面是一个非常愚蠢的例子,但希望显示我的意思.简单地说:理想的解决方案是(可能不存在)完全消除了编写JavaScript的需要,只有Perl代码会生成所需的JS.

因此我提到了上面的模块,特别是https://metacpan.org/pod/OpenThought,因为这些有助于最大限度地减少编写JavaScript.问题是 - 这些都没有更新2年.;(不幸的是 - 我不认识任何其他人.

Ash*_*ley 23

你没有得到答案的原因不仅仅是问题的模糊性.问题空间非常广泛,并且有很多攻角.

让我们澄清一下,Ajax中的"x"不应再被视为XML.JSON显然更自然,并没有遭遇几乎同样多的问题所以我的所有建议都会指向它.

什么霍布斯说已经是正确的.您根本不想使用服务器端代码,而是采用框架.这不是因为在Perl中处理Ajax很难; 这是微不足道的.这是因为问题空间很快变得混乱,你最终会在无穷无尽的微小变化中重复你的代码.所以-

的Perl /服务器端

任何这些都会让你最终快乐.他们都有学习曲线.还有其他选择,但这些是Best™.

部署应该是Plack/PSGI.

花点时间真正了解Perl Ajax处理的核心:JSON(:: XS),这样您就可以了解各种框架中的视图.

的JavaScript /客户端

在这一点上,这基本上是对财富的尴尬.

  • jQuery的
    • 许多Perl黑客喜欢这个套件; 它似乎达到了Perl所做的同样甜蜜点.我崇拜jQuery.
  • 道场
    • 我不是粉丝 - 他们在早期版本中拥有最差的文档,并且在删除过去存在的小文档时破坏了兼容性 - 但它在当前版本中很受欢迎.
  • MochiKit
  • MooTools的
  • YUI
  • ExtJS的
    • 来自YUI的这个现在很远的叉子是客户端JS的800磅大猩猩.我个人不喜欢它,因为它没有优雅的退化等等,但是它被高度重视并且非常锋利.

我个人不喜欢并且不能推荐原型,虽然我从未使用它,但我也选择不将script.aculo.us放在列表中.

那里还有很多其他惊人的专业包; 例如,Modernizr.当您研究JS时,请考虑标准兼容性和前瞻性功能(如CSS3,HTML5,扩展事件处理(如多点触控)对您要做的事情的重要性.祝好运并玩得开心点.

更新:可能还有进一步的兴趣


hob*_*bbs 8

寻找"ajax"并不是你真正需要的.只需使用您选择的具有良好序列化功能的Web框架,使用Accept标头等.例如CatalystCatalyst :: Action :: RESTDancer.不要编写写Javascript的Perl,它只会让你难过.