Der*_*air 5 javascript oop ajax jquery web-applications
我正在开发一个前端请求/数据管理系统,以便clean up/organize my API calls/refactor我与后端平台进行交互.我正在扩展jquery ajax api调用与它的接口,我正在寻找关于在哪里坚持api特定实现的一些建议.
请记住,这是一个Web应用程序平台,我正在努力使管理前端组件变得更容易
目标是从......等定义请求.
var requestObj = new Object();
requestObj.callback = function(responseObj){deleteUserComplete(responseObj); };
requestObj[0] = new Object();
requestObj[0].module = "usermanager";
requestObj[0].context = "#someTable";
requestObj[0].action = "DELETE_USER";
requestObj[0].dataObj = new Object();
requestObj[0].dataObj.userId = $("#ui-tabs-4 .az-switch-panel-off input[name$=userId]").val();
Run Code Online (Sandbox Code Playgroud)
至...
$("button.apiSubmit").apiManager('submitApi');
var options = {};
options.callback = someFunction;
options.context = "#someTable";
//etc...
$("button.apiSubmit").apiManager('submitApi', options);
Run Code Online (Sandbox Code Playgroud)
我相信你明白了......但是我想将丑陋的请求对象创建移动到工厂类型的对象(主要是将表单处理成我的后端理解的对象)并移动api特定的实现(模块,动作,上下文等)到标记.
1)将我的api特定请求信息移动到标记有什么好处/陷阱?
2)(再次,非常确信移动请求信息到标记是正确的移动)类标签或html5数据属性(x浏览器不是问题......他们是内部应用程序)?
EX:类属性将是...... class="apiButton apiButton-module-MODULE_NAME apiButton-action-ACTION_NAME"- 显然有点难看......但是可管理的直接方式去了解htis.
3)有没有其他选择让我的api请求更可重用/更容易阅读?这是我与php沟通的唯一方式,因此非常重要的是这个系统非常重要.
1) 虽然我在某种程度上同意 Marcel Korpel 关于使用 HTML5 数据属性的观点,但我认为使用标记明确地提出了一些潜在的问题:首先,您将 API/后端内部结构暴露给最终用户,这从来都不是理想的;其次它是不稳定的,因为它可以很容易地改变(firebug,js)并搞乱与该元素相关的行为。
2)更优雅(但实现方法稍微困难)是使用 jQuery 的.data()方法来存储相关信息 - 这样您可以保持标记干净,并且仍然可以灵活地存储与您想要的相关信息元素。它对最终用户来说也是“隐藏的”(当然 firebug/js 可以访问它,但它比在标记中访问它稍微困难一些)。我能想到的实现方法基本上有两种: -1 - 如果动态创建标记,则将元素包装在 jQuery 对象中,并在将其插入 DOM 之前应用元数据;或者 -2 - 如果是使用 PHP 创建,您可以将其作为序列化字符串存储在“rel”或“rev”或其他很少使用的属性中,然后使用 jQuery 获取它,存储在元数据中并清除属性。
3)然而,现在我想了一下,虽然使用 .data() 更优雅,但我想它并没有使它变得更容易理解,因为你有效地隐藏了应用程序的内部结构。也许您可以实现 getter/setter 来检索元数据或类似的内容。
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |