来自C-h f add-hook:
HOOK should be a symbol, and FUNCTION may be any valid function. If
HOOK is void, it is first set to nil. If HOOK's value is a single
function, it is changed to a list of functions.
Run Code Online (Sandbox Code Playgroud)
并从代码:
(defun add-hook (hook function &optional append local)
...
(or (boundp hook) (set hook nil))
(or (default-boundp hook) (set-default hook nil))
...
Run Code Online (Sandbox Code Playgroud)
这有什么用?我认为它在某种程度上是有用的,否则它就不会存在......我只是想不出它的好用...
我不是在谈论关键字变量(以冒号为前缀的那些),我只是在说:.ielm会话示例:
ELISP> :
:
Run Code Online (Sandbox Code Playgroud)
它似乎是一个变量,其值:使得它像在shell中一样行事.我只是好奇是否有关于它的任何文件.我无法用describe-variable...... 来查找
我有一个 Django 模型,其表中有数百万条记录。MyModel.objects.all()我正在尝试在 shell 中对表中的所有记录进行一些紧急维护,但在不完全耗尽系统内存的情况下我无法执行此操作。
甚至 a 也会pass导致 OOM 杀手被调用,杀死我的进程:
for ii in MyModel.objects.all():
pass
Run Code Online (Sandbox Code Playgroud)
原因是因为 DjangoQuerySet正在尝试通过构建一个包含我所有记录的列表来构建其“结果缓存”,如下所示:
# django/db/models/query.py
def _fetch_all(self):
if self._result_cache is None:
self._result_cache = list(self.iterator()) # <<<< this guy!
if self._prefetch_related_lookups and not self._prefetch_done:
self._prefetch_related_objects()
Run Code Online (Sandbox Code Playgroud)
但我的机器无法将整个列表保存在内存中。
当然,.all()在真正的应用程序中,在如此大的表上进行迭代将是一个糟糕的主意,因此这个问题的范围相当有限(维护活动),但它确实会不时出现。
我正在使用 DataTables 以及columns.render为表格实现自定义排序的选项。当 sort 函数中的逻辑仅依赖于静态数据时,这很好用。但是,我想为我的用户提供一些控件来控制排序应该如何发生。问题是似乎 DataTables 正在缓存第一个排序结果,因此当用户尝试更改排序控件时,它没有任何效果。
简而言之,我想要一个动态排序功能。
显然,这最好用一个例子来解释。这个想法是允许“信息”列按“客户名称”或“价格”排序,具体取决于用户在表格上方的收音机中选择的内容。运行它,您将看到排序仅适用于初始无线电选择。
$(function() {
var opts = {
"columns": [{
'searchable': false
}, {
'render': function(data, type, row, meta) {
if (type === 'sort') {
var sel = $("input[name=infoFilterOptions]:checked").val();
return $(sel, $(data)).data('value');
}
return data;
}
}]
};
$("#the_table").DataTable(opts);
});Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.10.12/datatables.min.css" />
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.10.12/datatables.min.js"></script>
</head>
<body>
<div style="color:green; margin-bottom: 10px;">
<div style="display: inline-block; margin-right: 10px;">Sort <i>Info</i> column by:</div> …Run Code Online (Sandbox Code Playgroud)