小编onl*_*ing的帖子

将DIV收缩到包裹到其最大宽度的文本?

收缩包装div到一些文本是非常简单的.但是如果由于最大宽度(作为示例)文本换行到第二行(或更多行),那么DIV的大小不会缩小到新包装的文本.它仍然扩展到断点(在这种情况下为最大宽度值),在DIV的右侧产生相当大的余量.当想要使这个DIV居中以使包裹的文本看起来居中时,这是有问题的.它不会,因为DIV不会收缩到多行文本.一种解决方案是使用合理的文本,但这并不总是实用的,并且结果可能是可怕的,并且单词之间存在较大的间隙.

据我所知,没有解决方案可以将DIV缩小为纯CSS中的包装文本.所以我的问题是,如何用Javascript实现这一目标?

这个jsfiddle说明了它:jsfiddle.由于最大宽度,这两个词几乎没有换行,但是DIV不会缩小到新包装的文本,留下一个令人讨厌的右边缘.我想消除这一点并让DIV重新调整到包装文本大概使用Javascript(因为我不相信纯CSS中存在解决方案).

.shrunken {text-align: left; display: inline-block; font-size: 24px; background-color: #ddd; max-width: 130px;}

<div class="shrunken">Shrink Shrink</div>
Run Code Online (Sandbox Code Playgroud)

html javascript css

12
推荐指数
2
解决办法
4523
查看次数

从 Go 中的数组/切片中获取元素的索引或从映射中获取值的键?

我有一个枚举的字符串列表(它们是常量,例如国家列表),我希望能够在提供枚举的 int 值时获取该字符串,反之亦然,能够获取枚举的 int 值提供字符串时。这是为了在两者之间进行数据库事务的转换。

var MyData = [...]string {
  "string1", // index 0
  "string2", // index 1
  "string3", // index 2  
}
Run Code Online (Sandbox Code Playgroud)

对于像 python 这样的语言来说,这很容易,只需执行 MyData[1] 即可获取“string2”,MyData.index(“string2”) 即可获取 1。

一些可能的解决方案是

  • 编写我自己的函数通过迭代数组/切片来获取索引
  • 对数组/切片进行排序并使用搜索函数返回索引(尽管这不允许未排序的序列,这是我更喜欢的)
  • 维护一个互相镜像的映射和数组,这很容易出错。

说到映射,我们可以访问特定值的键吗?然后我可以简单地拥有一个如下所示的映射,并且能够在提供 int 值时获取字符串键。

var MyData = map[string]int {
  "string1": 0,
  "string2": 1,
  "string3": 2,
}
Run Code Online (Sandbox Code Playgroud)

更新:在我接受我的答案之前,我想更彻底地解释这个问题,我知道这一定是相当普遍的。我基本上有一组恒定的字符串(例如国家列表),每个字符串都有一个关联的整数值。在我的数据库中,我只是存储整数以节省空间,因为有数百万个条目。但是,当我显示数据库中的条目时,我需要显示字符串值,以便用户可读。一个简单的数组就可以做到这一点。但是,我还需要向数据库添加条目(例如新人员及其居住国家/地区),在这种情况下,需要将从表单中输入的国家/地区字符串转换为该整数值。同样,这只是一个示例用例,但目标保持不变。我需要一个可以在字符串值和枚举 int 值之间双向转换的表。最明显的事情是维护一个数组(用于 int 到 string 的转换)和一个映射(用于 string 到 int 的转换)。我不想手动维护这两个变量,因为这很容易出错。因此,我下面的解决方案是仅维护一个数组,并让构造函数方法在程序首次运行时在运行时自动构建地图。这样做的优点是,当我根据字符串获取整数值时,不需要迭代整个数组(这是另一个建议的解决方案)。

go

6
推荐指数
1
解决办法
4万
查看次数

Python 请求 .iter_content() 生成器生成二进制数据?

我正在使用 Python requests API 通过 HTTP 传输数据,并且需要正确解码二进制数据。每个数据块都以单字节标头(“H”、“N”或“S”)开头,并且这些块包含可变长度字符串(除其他外)。数据是 gzip 压缩的,所以我想使用 .iter_content 自动解压缩数据(而不是 .raw),并且确实想迭代数据以检测每个 1 字节标头。但在每个块的主体内,我需要抓取几个字节并对其进行操作。问题是,不清楚我将如何做到这一点,因为 .iter_content() 是一个生成器,并且我不熟悉如何从中转换或提取数据。这是一个精简的代码块,说明了我想要完成的任务:

    resp = self.session.post(myurl, data=payload, stream=True, headers={'Content-Type': 'application/x-www-form-urlencoded'})

    if resp.status_code == 200:
        for byte in resp.iter_content(1):
            if byte == 'H':
                print "INFO: Heartbeat"
                body = resp.iter_content(9)
                print body # THIS DOESN'T WORK SINCE .iter_content IS A GENERATOR
            elif byte == 'N':
                print "INFO: Snapshot"
                len = resp.iter_content(2)
                mystr = resp.iter_content(len)
                print mystr # ALSO DOESN'T WORK FOR THE SAME REASON
            elif byte == 'S':
                print …
Run Code Online (Sandbox Code Playgroud)

python python-requests

5
推荐指数
1
解决办法
5390
查看次数

使用Cassandra和Solr的网站最有效的架构?

我正在开发一个网站,它将使用Cassandra进行数据库存储,Solr用于索引和搜索该数据库中包含的一些数据(我只想搜索一些数据).我打算使用PHP进行服务器端脚本编写,与Cassandra数据库连接,并根据数据库的内容提供动态HTML内容.

当用户向数据库提交内容时,我设想PHP向Cassandra发出写入,如果是需要搜索的数据,则可以将相同的数据写入Solr索引.问题是,我不一定需要Solr索引中可立即获得的可搜索数据,也不需要通过PHP消耗宝贵资源将其添加到索引的过程,尤其是在高峰时段.有没有办法通过直接从Cassandra传输数据,在后台发生Solr索引的异步更新?也许可以创建一个可搜索数据队列,用于在空闲时间通过某些后台进程更新Solr索引?

我对这一切都很陌生,但我不知何故喜欢Cassandra和Solr之间的链接与主PHP脚本隔离.不确定Cassandra和Solr是否可以通过Java高效链接,只有对Cassandra(用于读取/写入数据库)和Solr(用于查询可搜索数据)的更高级别访问权限可以在PHP中维护以用于Web内容创建.我很感激任何建议.

php java solr cassandra

4
推荐指数
1
解决办法
2456
查看次数

标签 统计

cassandra ×1

css ×1

go ×1

html ×1

java ×1

javascript ×1

php ×1

python ×1

python-requests ×1

solr ×1