首先,我必须说我很惊讶我没有找到任何资源,如果我错过了某些问题并且已经提出问题,我很抱歉
我们有一个很大的AngularJS应用程序,并希望:
在Landing,Login,Profile和Main模块之间拆分应用程序,只加载相关资源(CSS,JavaScript),以实现更好的加载时间。
检查我们是否有用户登录加载以避免在页面加载后重定向,以避免在此期间无法访问的页面闪烁。
我们的想法是从后端的应用程序中获得一个唯一的入口点:app.py
。然后后端将检查路由并检查我们是否有登录用户。然后,它将仅加载与我们正在加载的模块关联的资源,如果需要,它还会将登录用户传输到客户端。
例如,如果用户尝试访问/login
,我们会检查是否有用户从cookie登录,如果没有,我们只会加载登录所需的缩小的CSS和JavaScript。着陆页特别需要加载非常快,所以当我只需要一小部分时,我不想加载整个应用程序的资源。
登录时,我们会重新加载页面,以便后端加载Main
模块的资源。
这就是app.py
的样子:
from werkzeug.wrappers import Request, Response
import router
import rpc
import assets
import js_globals
@Request.application
def resolve(request):
# Get the route path : [""], ["login"] or ["logged_in", "editor"] for example
route = router.get_route(request)
# Get the logged in user if any
user = rpc.authenticate_with_token(request)
# LoggedIn or Login or Landing
angular_module = router.get_module(route, user)
# Load the assets from the module : JavaScript and CSS
assets_output = assets.load(angular_module)
if user:
# Send the user to be available on the client-side
js_globals_output = js_globals.set(user)
output = generate_output(assets_output, js_globals_output)
return Response(output)
我的问题是:既然我还没有看到类似的东西,AngularJS已经存在了一段时间了,这是解决这些问题的正确方法吗?有更好的方法吗?
谢谢!