当我编写客户端代码时,我使用 HTML / CSS / JavaScript和最近的jQuery来加快编码速度,并使用改进的方法来实现同样的目标.

在我的文本编辑器中,我使用禅编码来加快编写代码,并避免错误.我正在将zen-coding视为一个jQuery插件一段时间,但它有一个致命的缺陷,您希望HTML被写入并发送到客户端之前任何JavaScript踢.

虽然我们可以使用JavaScript服务器(env.js或node.js),因此使用JavaScript和jQuery做了大量的开发服务器端,但我并不喜欢随着新兴技术的发展,而且具有许多差异和缺点(还有一些主要优点).

我想继续使用PHP服务器端,但是以我最舒服的方式开发,并熟悉哪个是客户端JavaScript.

因此 – 我一直在研究QueryPath,它是一个jQuery的PHP端口,旨在使jQuery中最好和最相关的部分,并重新工作以适应服务器环境.

这是非常好的,我现在已经在看两个能够解析禅编码的PHP类,当它们组合起来是一个很棒的模板引擎,并且也避免了我的代码中的错误.

我遇到的问题是,zen编码解析器都不支持任何附近的zen编码功能.

所以终于我的问题(对于相当漫长的介绍,抱歉)

>有没有更好的服务器端禅编码解析器我可以在我的PHP代码中使用?
>有没有一个很好的(非常简洁和全功能的)替代模板系统来使用禅编码? (我知道的不是最初设计的这个任务)
>我应该采取更好的方法来实现我最终目标,缩小我在客户端和服务器端方面的划分?
>有没有PHP库实现一个效用函数的负载,通过使用将增强我的代码的安全性能,而不用我学习所有的内部工作? (如jQuery为javascript)

注意:我正在寻找功能等同于句法相似性 – 尽管对我来说都是一个加分.

这是一些评论的测试代码,应该说明我正在努力实现的目标:

<?PHP

    // first PHP based zen-coding parser
    // http://code.google.com/p/zen-PHP
    require_once 'ZenPHP/ZenPHP.PHP';
    // my own wrapper function
    function zp($abbr){ return ZenPHP::expand($abbr); }

    // second PHP based zen-coding parser
    // https://github.com/philipwalton/PW_Zen_Coder
    require_once 'PW_Zen_Coder/PW_Zen_Coder.PHP';
    $zc = new PW_Zen_Coder;
    // my own wrapper function
    function pwzc($abbr){ global $zc; return $zc->expand($abbr); }

    // PHP port of jQuery with a new server-side flavor
    // http://querypath.org/
    require_once 'QueryPath/QueryPath.PHP';

    // initialize query path with simple html document structure
    qp(zp('html>head+body'))

        // add a heading and paragraph to the body
        ->find('body')
        ->html(zp('h1{Zen Coding and jQuery - Server Side}+p{This has all been implemented as a PHP port of JavaScript libraries}'))

        // add a comments link to the paragraph
        ->find('p')
        ->append(pwzc('span.comments>a[href=mailto:this@comment.com]{send a comment}'))

        // decide to use some jquery - so add it to the head
        ->find(':root head')
        ->append(zp('script[type=text/javascript][src=/jquery.js]'))

        // add an alert script to announce use of jQuery
        ->find(':root body')
        ->append(zp('script[type=text/javascript]{$(function(){ alert("just decided to use some jQuery") })}'))

        // send it to the browser!
        ->writeHTML();

    /* This will output the following html

    <html>
    <head>
    <script type="text/javascript" src="/jquery.js"></script>
    </head>
    <body>
    <h1>
        Zen Coding and jQuery - Server Side
    </h1>
    <p>
        This has all been implemented as a PHP port of JavaScript libraries
    <span class="comments">
        <a href="mailto:this@comment.com">

            send a comment
        </a>
    </span>
    </p>
    <script type="text/javascript">
        $(function(){ alert("just decided to use some jQuery") })
    </script>
    </body>
    </html>

    */
?>

任何帮助深表感谢

解决方法

首先我想说我已经投票了你的答案,因为它是很好的解释,并有一些好点要考虑;那么我想让你想想另外一点:

陷阱

整个事情都在呃…
>在生成HTML和输出的HTML本身所需的整个PHP代码之间,在编写代码长度方面的差异非常小.
>这些代码是完全不可思议的,每个不知道3个lib或者它是什么的人.
>相对于香草HTML的重要性,现场负载速度将会下降.
>真正的区别是什么?

h1{Zen Coding and jQuery - Server Side}+p{This has all been implemented as a PHP port of JavaScript libraries}

<h1>Zen Coding and jQuery - Server Side</h1><p>This has all been implemented as a PHP port of JavaScript libraries</p>

6 ..因为你知道zen-coding和queryPath不是要按照你所做的方式使用,至少不是在生产场景中.

事实上,jQuery有一个很好的文档,它有用的使用并不意味着可以成功地从任何人使用. (只是复制/过去不被认为是编码技能IMO)

这可能是您看到像smarty这样的PHP模板引擎的最佳解决方案,这将以各种方式满足您的需求:

>安全/性能
缩小我在客户端和服务器端之间的差距

一个例子是:(被认为是一个非常原始的例子,smarty有更强大的功能)

<!-- index.tpl -->
<html>
  <head> {$scriptLink} 
  </head>
  <body> <h1> {$h1Text} </h1>
    <p> {$pText} 
      <span class="comments">
        <a href="{$aLink}"> {$aText} </a>
      </span>
    </p> {$scriptFunc} 
  </body>
</html>
// index.PHP
    require('Smarty.class.PHP');
    $smarty = new Smarty;
    $smarty->assign("scriptLink","<script type=\"text/javascript\" src=\"/jquery.js\"></script>");
    $smarty->assign("scriptFunc","<script type=\"text/javascript\">$(function(){ alert(\"hello world\") });</script>");
    $smarty->assign("h1Text","Zen Coding and jQuery - Server Side");
    $smarty->assign("pText","This has all been implemented as a PHP port of JavaScript libraries");
    $smarty->assign("aText","send a comment");
    $smarty->assign("aLink","mailto:this@comment.com|mailCheck");
    $smarty->display('index.tpl');

注意:使用mailCheck,是的,你也应该考虑使用某种变量检查.聪明可以做到….

希望这个帮助.

总结

以上是DEVMAX为你收集整理的结合jQuery和Zen-Coding php端口来模拟服务器端脚本的客户端编程风格全部内容。

如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站 推荐给好友。

结合jQuery和Zen-Coding php端口来模拟服务器端脚本的客户端编程风格的更多相关文章

  1. HTML实现代码雨源码及效果示例

    这篇文章主要介绍了HTML实现代码雨源码及效果示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  3. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  4. HTML文本属性&amp;颜色控制属性的实现

    这篇文章主要介绍了HTML文本属性&颜色控制属性的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. 简洁自适应404页面HTML好看的404源码

    这篇文章主要介绍了简洁自适应404页面HTML好看的404源码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  7. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. HTML5适合的情人节礼物有纪念日期功能

    这篇文章主要介绍了HTML5适合的情人节礼物有纪念日期功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. 如何给HTML标签中的文本设置修饰线

    这篇文章主要介绍了如何给HTML标签中的文本设置修饰线,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  10. HTML5调用手机发短信和打电话功能

    这篇文章主要介绍了HTML5调用手机发短信和打电话功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. jquery-plugins – 是否可以使用猫头鹰旋转木马实现循环/无限轮播?

    我正在使用猫头鹰旋转木马,它的工作完美,除了它不支持循环/无限滚动.我没有搜索google和stackoverflow的想法,没有运气.有没有人在猫头鹰旋转木马上实现圆形/无限滚动?

  2. jQuery动态输入字段焦点

    我想使用以下jQuery向我的页面动态添加一个输入字段:在这样做之后,我希望输入字段具有闪烁的文本光标的焦点,所以我想在创建后立即输入.有人可以告诉我我该怎么办?

  3. jquery – 为什么$(window).height()这样错了?

    我试图获取当前浏览器的视口高度,使用但我得到的价值观太低了.当视口高度高达850px时,我从height()获取大约350或400像素的值.这是怎么回事?

  4. jquery – 如果在此div之外和其他draggables内部(使用无效和有效的还原选项),则可拖动恢复

    例如这样但是由于明显的原因,这不行.我可以说这个吗?

  5. 创建一个jQueryUI 1.8按钮菜单

    现在jQueryUI1.8已经出来了,我正在浏览更新,并且遇到了新的Buttonwidget,特别是SplitButtonwithadropdown的演示之一.这个演示似乎表明Buttonwidget可以在这里创建一个下拉菜单.作为讨论的问题,我想知道使用这个新的Button小部件来创建一个下拉菜单有什么方法.干杯.解决方法您必须在按钮下方列出一个列表,方式类似于此处为自动完成提供的演示:http

  6. 灰色divs使用JQuery

    我试图使用这个代码:为了淡出一大堆名为MySelectorDiv的div,唯一的是,它只会淡出第一个而不是所有的div,为什么呢?

  7. 使用jQuery动态插入到列表中

    我有两个订单列表在彼此旁边.当我从一个列表中选出一个节点时,我想按照字母顺序插入到另一个列表中.抓住的是我想要把一个元素放在另一个列表中,而不刷新整个列表.奇怪的是,当我插入到右边的列表中,它工作正常,但是当我插入到左边的列表中时,顺序永远不会出来.我也尝试将所有内容读入数组,并将其排序在一起,以防止children()方法没有按照显示顺序返回任何东西,但是我仍然得到相同的结果.这是我的jQuer

  8. 没有回应MediaWiki API使用jQuery

    我试图从维基百科获取一些内容作为JSON:但我没有回应.如果我粘贴到浏览器的地址栏,就像我得到预期的内容.怎么了?解决方法您需要通过添加&callback=?来触发具有$.getJSON()的JSONP行为?在querystring上,像这样:Youcantestithere.没有使用JSONP,你正在击中same-originpolicy,阻止XmlHttpRequest获取任何数据.

  9. jQuery Ajax请求每30秒

    我有这段代码,但是有些人在我的网站上的值可能会改变.我需要每30秒钟更新一次#financediv.这可以做吗解决方法您可以将代码放在单独的函数中,如下所示:然后每30秒建立一个定时器调用该函数:祝你好运!总结以上是DEVMAX为你收集整理的jQueryAjax请求每30秒全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  10. jquery – keypress事件在IE和Chrome中不工作,但在FF工作

    任何想法为什么会这样发生?我通常认为Chrome会更加宽容代码?这是我的按键键.我错过了什么吗?右图();和leftimage();是应该工作的功能,因为我在其他地方使用这些功能谢谢您的帮助!

返回
顶部