我正在开发一个前端请求/数据管理系统,以便clean up/organize my API calls/refactor
我如何与后端平台进行交互。我正在扩展jquery ajax api调用与它的接口,我正在寻找关于在哪里坚持api特定实现的一些建议。
请记住,这是一个网络应用程序平台,我正在尝试更轻松地管理前端组件
目标是从......等定义请求。
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();
要...
$("button.apiSubmit").apiManager('submitApi');
var options = {};
options.callback = someFunction;
options.context = "#someTable";
//etc...
$("button.apiSubmit").apiManager('submitApi', options);
我确信你明白了......但是我想将丑陋的请求对象创建移动到工厂类型的对象(主要是将表单处理成我的后端理解的对象)并移动api特定的实现(模块) ,标记,行动,背景等)。
1)将特定于api的请求信息移至标记有哪些好处/陷阱?
2)(再次,非常确信移动请求信息到标记是正确的移动)类标签或html5 data attributes(x浏览器不是问题......它们是内部应用程序)?
EX:类属性将是...... class="apiButton apiButton-module-MODULE_NAME apiButton-action-ACTION_NAME"
- 显然有点难看......但是可以直接管理htis。
3)有没有其他选择让我的api请求更可重用/更容易阅读?这是我与php沟通的唯一方式,所以它非常...... 非常这个系统非常重要。
答案 0 :(得分:1)
1)虽然我有点同意Marcel Korpel关于使用HTML5数据属性的看法,但我认为使用标记明确地提出了一些潜在的问题:首先,你将API /后端内部暴露给最终用户,这是永远的理想的,其次是它的挥发性,因为它可以很容易地改变(firebug,js)并弄乱与该元素相关的行为。
2)使用jQuery的.data()方法存储相关信息越优雅(但实施方法稍难) - 这样可以保持标记清晰,并且仍然可以灵活地存储尽可能多的信息。你想要与元素相关。它也是最终用户的“隐藏”(确保firebug / js可以访问它,但它在标记中比在右边更难)。我基本上有两种方法可以考虑如何实现这个:-1 - 如果你动态创建标记然后将元素包装在jQuery对象中并在将元数据插入DOM之前应用元数据,如果是使用PHP创建,您可以将其存储为“rel”或“rev”中的序列化字符串或其他一些很少使用的属性,然后使用jQuery来获取它,存储元数据并清除属性。
3)然而,现在我考虑一下,虽然使用.data()更优雅,但我认为这并不会让它更容易理解,因为你有效地隐藏了应用程序内部。也许您可以实现getter / setter来检索元数据或其他内容。