gpt4 book ai didi

jquery - nodejs 或 envjs - 动态 jquery tmpl

转载 作者:IT老高 更新时间:2023-10-28 23:19:30 25 4
gpt4 key购买 nike

我当前的任务是为特定的 DOM 生成和提供集中式模板 - 对于这个示例,我们只说它是一个表单。

基本上我想获取每个表单元素(从标签到输入,再到 div 包装器)并将它们保存为单独的 templates .

从那里我们将有一个 UI,我们的制作人可以在其中拼凑这些表格。一旦他们决定了表单的布局方式(DOM 顺序和结构实际上对这个项目至关重要。它不能是纯 CSS 的解决方案),我们平台端的脚本将保存一个 JSON 对象,该对象将确定基于模板名称的 DOM 结构,稍后我可以在页面加载时引用。

我认为这里的理想解决方案是将 JSON 对象发送到 Node 服务器或使用 envjs 以某种方式“构建”这个 dom,然后将其分配给 PHP 变量以包含在 CodeIgniter View 中,这样它可以被谷歌索引。

我知道 JQuery 可以与 envjs 一起工作,而且我知道有一个 JQuery plugin for node ,但是很可惜,这是我的第一个服务器端 JS 项目,而且它恰好相当重要。我能够通过命令行让 envjs 在我的本地机器上工作,但完成一个简单的任务需要 10-30 秒。如果 envjs 是要走的路,我怎样才能让它在后台运行并让脚本引用它? PHP curl 到 Tomcat 上的 envjs servlet 可能吗?

需要注意的是,我的本地开发人员是 WAMP(它不会让我们拥有本地 unix 机器),但我们的测试和生产环境都是 LAMP。我确实有一个个人 LAMP 服务器,我可以测试这是否是唯一的方法,但是在我的个人服务器上编码公司的东西会让我很兴奋。

不幸的是,我没有时间研究所有可能性并尝试/失败,因为我通常会在自己的时间使用新技术。想法、指导、代码示例 - 任何可以帮助我决定如何处理的东西都将不胜感激。

最佳答案

简答:使用 Node 。立即使用它。事实上,这里有一个指向最新的本地 Windows .exe 的链接,它是独立的,没有依赖关系:http://nodejs.org/dist/v0.5.4/node.exe

长答案:env.js 是/曾经是一个很酷的项目。它在js中模拟了一个js环境。它可以在其他环境和东西中运行。不管怎样,没关系。

Node.js 是一个运行在 V8 之上的 js 宿主环境。 V8 是目前最快的 js 环境,为 Chrome 等提供支持。Node 本身适用于原生系统环境,就像普通 js 对浏览器一样:强大的 API 组合混合在一起,形成了易于开发人员使用和功能广泛的魔力设置。

在浏览器上,您可以通过对 javascript 的 DOM 扩展来控制视频、音频、用户输入等。使用服务器上的 Node (或只是您自己的计算机,它有很多超出常规服务器使用的应用程序)您可以获得对所有类型的 IO 的难以置信的支持:为您完成所有样板工作的 http/udp 服务器和客户端,文件 I/O,用于处理所述网络和文件 I/O 的托管数据流,访问 spawn 和与子进程或 fork 进程通信,以及直接访问 V8 的编译器以编译和保存/运行 javascript 字节码。

关于 DOM,至少有一个用于 Node 的 DOM 的完整 (html) 实现和多个部分实现。至少我所知道的 YUI、jQuery 和 MooTools 可以在 DOM 库之上的 Node 中轻松运行,以像在浏览器中一样从您想要的任何源构造 DOM,然后将其序列化为 html 或其他任何内容。

https://github.com/tmpvar/jsdom是在 Node (或我相信的任何 javascript 环境)中运行的 DOM 实现。

https://github.com/tmpvar/jsdom/blob/master/example/browser/browser.js是一个模拟浏览器的例子:

var sys = require('sys');
var dom = require('../../lib/jsdom/level2/html').dom.level2.html;
var browser = require('../../lib/jsdom/browser/index').windowAugmentation(dom);

var document = browser.document;
var window = browser.window;

var el = document.createElement('div');
el.id = 'foo';
el.innerHTML = '<em>This is a test</em> This <strong class="odd">is another</strong> test ';
document.body.appendChild(el);

sys.puts(document.outerHTML);

其他一些可能会启发您做出决定的库

关于jquery - nodejs 或 envjs - 动态 jquery tmpl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7045770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com