[英]how to return javascript in Pyramid/Pylon
如何在Pyramid / Pylon框架中返回一些带有视图callables的javascript代码或javascript文件?
你可以像任何可调用的模板/视图那样做。 它并没有那么不同。 我仍然建议设置内容类型。
from pyramid.view import view_config
@view_config(name='javascript', renderer='templates/javascript.mako')
def my_js_view(request):
request.response.content_type = 'application/javascript'
return {... params ...}
它与其他观点没有什么不同。
什么样的JavaScript? 动态生成还是静态?
静态时,只需使用静态视图就像CSS和图像一样。
如果是动态的,请使用模板生成javascript文件并使用正确的内容类型进行投放; 这是使用Chameleon文本渲染器的示例,但您当然可以使用自己喜欢的模板引擎:
@view_config(name='generated_javascript', renderer='templates/generated_javascript.txt')
def generated_javascript(request):
request.response.content_type = 'text/javascript'
# The returned dict holds items your template can access when
# generating the javascript.
return dict(foo='bar', spam='eggs')
请注意,我在Response对象上设置了content_type
属性,以确保浏览器识别您生成的JavaScript。
然后,您的模板可以访问您返回的dict
的值以及一些其他系统值 ,就像任何其他模板一样。
请注意,最佳做法是尽量减少动态JavaScript的使用,并尽可能静态地使用它。 任何(动态)上下文信息都应该包含在您生成的HTML中,然后静态JavaScript可以加载和使用。 然后,您的静态JavaScript可以被所有访问者缓存,从而显着提高性能。 查看javascript文件的Chameleon模板? 有关如何实现这一目标的一些提示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.