表示逻辑还是业务逻辑?
Presentation logic or business logic?
假设我的 html 页面中有三个按钮。第一个按钮用于选择汽车,第二个按钮用于租用汽车,下一个按钮用于支付租金。所有三个按钮都发出 ajax 请求以在服务器中执行一些业务逻辑。当用户按下第一个按钮并且 ajax 请求正常时,我启用第二个按钮并禁用第一个按钮,第二个和第三个按钮也是如此。默认情况下,所有按钮都被禁用。如果 ajax 请求正常,则此启用或禁用在 javascript 中。我认为启用或禁用按钮或权限是业务逻辑,不应出现在视图中,而应出现在服务器中。我的意思是,根据他已经完成的操作,提出一个ajax请求来获取用户拥有的权限不是更好吗?
非常感谢
如果您希望服务器端代码决定是否显示下一个按钮,您可以这样做:
$.get("/api/yourController/yourMethod")
.success(function (response) {
if (response == true){ //change this for your unique decision logic
// execute show button code
}
});
根据您 return 从您的服务器在 response
对象中的数据,您可以控制您的下一个按钮是否出现在您的 HTML。
我有两个答案:
ajax请求获取可用的状态转换是完全合理的。你谈论这个好像它是权限,但事实并非如此。权限是根据用户被允许执行的操作而在用户之间有所不同的状态。这就是基于业务规则在给定特定状态的情况下有效的操作,这是获得请求的好事。
就是说,当您使用 AJAX 时,客户端和服务器上都有 MVC 模式是很常见的。也就是说,除了视图逻辑之外,您的 HTML 页面中还有一些视图和控制器逻辑。这个逻辑实现了一些业务规则。 Angular 和其他客户端框架使这种模式变得明确。在这样的应用程序中,服务器视图层很薄。确保在您的服务器中执行重要的业务规则仍然很重要,这样攻击者就无法在客户端破坏这些规则。在这样的应用程序中,在客户端启用按钮是完全合理的,只要服务器确保您在未选择汽车的情况下不会租车或付款。
假设我的 html 页面中有三个按钮。第一个按钮用于选择汽车,第二个按钮用于租用汽车,下一个按钮用于支付租金。所有三个按钮都发出 ajax 请求以在服务器中执行一些业务逻辑。当用户按下第一个按钮并且 ajax 请求正常时,我启用第二个按钮并禁用第一个按钮,第二个和第三个按钮也是如此。默认情况下,所有按钮都被禁用。如果 ajax 请求正常,则此启用或禁用在 javascript 中。我认为启用或禁用按钮或权限是业务逻辑,不应出现在视图中,而应出现在服务器中。我的意思是,根据他已经完成的操作,提出一个ajax请求来获取用户拥有的权限不是更好吗?
非常感谢
如果您希望服务器端代码决定是否显示下一个按钮,您可以这样做:
$.get("/api/yourController/yourMethod")
.success(function (response) {
if (response == true){ //change this for your unique decision logic
// execute show button code
}
});
根据您 return 从您的服务器在 response
对象中的数据,您可以控制您的下一个按钮是否出现在您的 HTML。
我有两个答案:
ajax请求获取可用的状态转换是完全合理的。你谈论这个好像它是权限,但事实并非如此。权限是根据用户被允许执行的操作而在用户之间有所不同的状态。这就是基于业务规则在给定特定状态的情况下有效的操作,这是获得请求的好事。
就是说,当您使用 AJAX 时,客户端和服务器上都有 MVC 模式是很常见的。也就是说,除了视图逻辑之外,您的 HTML 页面中还有一些视图和控制器逻辑。这个逻辑实现了一些业务规则。 Angular 和其他客户端框架使这种模式变得明确。在这样的应用程序中,服务器视图层很薄。确保在您的服务器中执行重要的业务规则仍然很重要,这样攻击者就无法在客户端破坏这些规则。在这样的应用程序中,在客户端启用按钮是完全合理的,只要服务器确保您在未选择汽车的情况下不会租车或付款。