快速HTML缩小功能,django中间件,decorator

django-hmin的Python项目详细描述


django hmin公司

Build Status

django(1.6+)html小型化中间件(另一个)。主要特点- 速度。10x(在大型html上可以是50x、100x、200x甚至更多)时间 比htmlmin快压缩html,删除注释,尊重(不 删除)默认条件注释(IE)使用缓存(可以是 禁用),这将大大减少HTML缩小开销。

兼容性

Django 1.6-Django 1.10

安装

对于安装django hmin,在终端上运行:

$ pip install django-hmin

额外安装选项

也可以安装re2(快速正则表达式)库 (pip install re2+请求)Hmin将使用它而不是re

使用MIDLEWARE

你只需要在你的 MIDDLEWARE_CLASSES

MIDDLEWARE_CLASSES = (
    # other middleware classes
    'hmin.middleware.MinMiddleware',
    'hmin.middleware.MarkMiddleware',
)

如果您使用的是django的缓存中间件,MarkMiddleware应该 在FetchFromCacheMiddleware之后,应该在MinMiddleware之后 在UpdateCacheMiddleware

之后
MIDDLEWARE_CLASSES = (
  'django.middleware.cache.UpdateCacheMiddleware',
  'hmin.middleware.MinMiddleware',
  # other middleware classes
  'django.middleware.cache.FetchFromCacheMiddleware',
  'hmin.middleware.MarkMiddleware',
)

您可以选择指定HTML_MINIFY设置:

HTML_MINIFY = True

HTML_MINIFY设置的默认值是not DEBUG。你 如果要缩小html代码,只需要将其设置为True。 当启用DEBUG时。

URL排除

指定设置:

HMIN_EXCLUDE = ('^base/', '^admin/')

保留HTML注释

指定设置:

HMIN_REMOVE_COMMENTS = False

缓存

默认情况下,hmin中间件使用缓存(对于中小型应用非常有用 网站,而且对于大型网站,您肯定会使用ngx_pagespeed或其他 “大”解决方案)。您可以通过指定设置来禁用它:

HMIN_USE_CACHE = False

您还可以更改时间和缓存后端(如果需要,默认时间为 是3600,缓存后端-“默认”):

HMIN_CACHE_TIMEOUT = 86400
HMIN_CACHE_BACKEND = 'my_cache'

使用函数

只需导入函数minify:from hmin import minify,就可以了 把它和你想要的任何html一起使用功能定义: def minify(content, remove_comments=True)

使用decorator

只需导入decorator minify_平原: from hmin.decorators import minify_plain,您可以缩小任何 所需功能:

@minify_plain()
def my_cool_func():
    <...>
    return some_plain_html

或者,如果您想保留HTML注释:

@minify_plain(False)
def my_cool_func():
    <...>
    return some_plain_html

愚蠢的速度基准(1)

我尝试压缩1mb的html(我认为,您通常的html是 thiner)在我的i7笔记本电脑处理器上,用 Django调试工具栏。

Django开销大约40毫秒(全部),这是没有 缩小,只是简单的html、django等。

然后我安装hmin和htmlmin,只需查看调试工具栏 数字(这是非常愚蠢和简单的“基准”):使用hmin cpu 大约60ms(min)-使用htmlmin cpu大约1200ms(min)

减去开销,纯时间:hmin-20ms,htmlmin-1160ms

也许,你可以得到其他的数字。但赫敏真的比 htmlmin公司

愚蠢的速度基准(2)

另外,我尝试在我的桌面i3(sandy bridge)上压缩2mb的html。

调试工具栏时间:-使用hmin cpu时大约220ms没有缓存, 而87ms使用高速缓存-使用htmlmin cpu大约是125000ms

django开销约为80ms。减去开销,纯时间:hmin- 140ms7ms带缓存),htmlmin-ok。

当前问题

  • 不尊重CData

许可证

谁在乎呢想怎么用就怎么用

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
http POST请求Java CouchDB   java删除带有大量尾随0的浮点字符串上的科学符号   JavaEE5和Hibernate   java如何在Spring Social中获得比特定id更早的tweet   java是框架。revalidate()在事件后获取输出是否重要?   java为什么不能返回通用映射?   java如何理解和优化工厂方法的高自时间   java Eclipse 202006错误由于项目的生成路径不完整,因此未生成该项目   多线程是java。util。向量序列化线程安全?   在Eclipse和java中使用不同的构建配置。属性文件   编译Java:从命令行运行的问题   java如何知道消息是否已确认/取消?   Java铸造一套   java Android Seekbar progress已更改变量,给出错误