Jscp (Javascript client page) javascript 库

国庆几天因计划变故未出游, 在家对javascript作了一些研究,产生了一个有趣的想法。我写了一个迷你的 javascript 库(基于prototpye)实现了它。我称这个库为Jscp - javascript client page。使用 Jscp, 可以把 render 页面模版与数据以生成最终页面的工作移到客户端进行,也就是说,在浏览器中进行这项工作。 

 传统的服务模型:
1. client   --- 发送请求 --->  server
2. client(等待)                            server (服务请求,产生结果数据)
3. client(等待)                            server (将数据与页面模版进行rendering)
4. client   <---  接收结果页面 --- server

使用 Jscp,服务模型变成:
1. client   --- 发送请求  ---> server
2. client   <---  接收页面模版 --- server (页面模版可以被缓存以多次使用)
3. client   --- 发送请求--->  server
4. client(等待)                            server (服务请求,产生结果数据)
5. client   <---  接收结果数据--- server  (数据使用 JSON 格式)
6. client (将数据与页面模版进行rendering)                 server

我想这个模型在服务端与客户端之间提供了更清晰的接口。运行在服务端的代码集中于完成请求,产生正确的结果数据,用标准的JSON格式返回。与页面模版融合并显示的代码则运行在客户端(虽然代码的部署仍然是在服务器上)。我不清楚是否已经有某个javascript库实现了该特性,我找了但没有发现。(Prototype 虽然对JSON有简单支持,但其并没有用来实现Jscp中的特性)
 
下面是一个简单的例子对比两种模型下的代码:
使用 PHP, .php中代码类似如下:
... <? for i=0; i<3; ++i { ?>
... <? echo res[i].'/r/n' ?>
... <? } ?>
 
使用 Ruby on Rails, .rhtml中代码类似如下:
... <% 1.to(3) do { |i| %>
... <%= @res[i] %>
... <% } %>
 
使用 Jscp, 模板页面(.jscp.html)中的代码类似如下: (使用javascript)
... <%INC ../layout_header.htm %>
... <% var r=_RENDER_DATA; %>
... <% for i=0; i<3; ++i { %>
... <%= r.res[i] %>
... <% } %>
... <%INC ../layout_foot.htm %>

 通过把rendering的工作移到浏览器端,许多效果可以很容易的实现,比如浏览器端分页,列表排序等。Jscp并不与其它的Ajax技术冲突,因为它是位于它们的底层的。

我在sourceforge.net上为JSCP注册了项目,源码、文档、及例子可以访问以下网页获得。

http://jscpage.sourceforge.net

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

xuting

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值