繁体   English   中英

如何在Pyramid / Pylon中返回javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM