我正在使用d3.js来渲染我的图形.出于某种原因,我不是svg冠军的忠实粉丝,因为它会产生延迟并且无法设计它们.如果我错了,请纠正我.我最近遇到了,醉意,但它似乎并没有被跨浏览器兼容.
例如,考虑一下.工具提示在Firefox和Chrome中运行良好,但即使在IE 9中也不会出现,我不确定发生了什么.除了使用svg title属性之外,是否有更清晰的跨浏览器方法来处理与d3.js兼容的工具提示?
编辑:我正在寻找适合d3.js的东西.例如,使用tipsy,我们执行以下操作:
$("svg circle").tipsy({});
这适用于Firefox和Chrome,但不适用于IE.使用Twitter的Bootstrap的工具提示插件时观察到类似的事情.这是我的jsFiddle 没有添加工具提示以启用快速测试.
创建随机树(或满足树属性的邻接矩阵)的好方法是什么?我目前有以下数据结构,我要返回,但我想随机生成.有什么建议?
return [{
Source: "A1",
Target: "A2",
}, {
Source: "A2",
Target: "A3",
}, {
Source: "A1",
Target: "A4",
}, {
Source: "A4",
Target: "A6",
}, {
Source: "A4",
Target: "A7",
}, {
Source: "A3",
Target: "A8",
}, {
Source: "A3",
Target: "A5",
}];
Run Code Online (Sandbox Code Playgroud) 在SQL Server Management Studio中执行时,我有一个查询(大约1600行存储为存储过程),执行大约需要3秒(在通过添加正确的索引进行优化之后).
我在C#中为此编写了一个包装器,并为自己提供了使用URI来执行此查询的能力.但是,这需要超过30秒的时间来执行,因此,当我将此查询作为循环的一部分运行时,由于过多的待处理请求,浏览器会停止.我写了这样的包装器:
try
{
string ConString = Constants.connString;
using (con = new SqlConnection(ConString))
{
cmd = new SqlCommand(sql, con);
con.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的连接字符串是这样的:
Data Source={0};Initial Catalog={1};Integrated Security=True;MultipleActiveResultSets=true
Run Code Online (Sandbox Code Playgroud)
我知道查询本身很好,因为我在SSMS中多次运行它并且工作正常(平均5秒以下).而且,我很乐意提供更多的调试信息,除了我不知道提供什么.
要解决这些问题,我将从哪里开始?
编辑:
我运行了SQL Profiler并收集了一些统计信息.这就是我所观察到的.非常奇怪,它是正在执行的确切查询.让我知道在这一点上我还能做些什么.

我有以下异步TCP服务器,我用它来接受来自想要上传文件的客户端的传入请求.大约1-4小时后,服务器只是停止接受任何新连接.这让我感到困惑,因为我无法确定性地重现错误.程序中的其余线程继续正常运行.没有任何例外.关于可能发生什么的任何建议?
在服务器崩溃之前,我所看到的是它设法完成待处理的请求然后停止.我怀疑服务器是否经常出现网络断开连接.如何使这段代码对故障更加健壮?我已经将try-catch添加到可能会失败的两段代码中,但我觉得我仍然缺少某些东西.
我设置另一个线程来检查此服务器是否释放套接字,但即使在它停止处理客户端请求后,套接字似乎仍在使用中.我用这个验证了这个netstat -a
internal class TCPServer
{
private readonly int _listeningPort;
private TcpListener listener;
public TCPServer(int port)
{
_listeningPort = port;
listener = new TcpListener(IPAddress.Any, _listeningPort);
listener.Start(int.MaxValue);
}
public async void Start()
{
while (true)
{
Log.Verbose("Waiting for connections...");
try
{
var tcpClient = await listener.AcceptTcpClientAsync();
Task t = HandleConnectionAsync(tcpClient);
await t;
}
catch (Exception exp)
{
Log.Fatal(exp.ToString());
}
}
}
private async Task HandleConnectionAsync(TcpClient tcpClient)
{
try
{
string outputFile = ""; // get a random string …Run Code Online (Sandbox Code Playgroud) 在我的布局中,TextView屏幕底部有一个.问题是,当我在文本框内单击以键入内容时,键盘覆盖文本框,因此我无法看到发生了什么......有什么解决方案吗?这是我的布局......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/layout_bg">
<ImageView
android:id="@+id/headerimg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:src="@drawable/header_image" />
<LinearLayout
android:id="@+id/secondaryLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="320dip"
android:layout_marginTop = "5dip"
android:layout_marginLeft="8dip"
android:layout_marginRight="8dip"
android:cacheColorHint="#00000000">
<!-- A ListView appears here -->
</LinearLayout>
<RelativeLayout
android:id="@+id/message"
android:orientation="horizontal"
android:layout_width="300dip"
android:layout_height="80dip"
android:layout_gravity="center">
<EditText
android:id="@+id/MessageText"
android:layout_height="wrap_content"
android:layout_width="230dip"
android:layout_marginLeft="8dip"
android:layout_marginTop = "8dip"
android:paddingBottom = "8dip"
android:paddingLeft="15px"
android:hint="Type something here...">
</EditText>
<Button
android:id="@+id/MsgButton"
android:layout_margin="0dip"
android:layout_width="48dip"
android:layout_toRightOf="@id/MessageText"
android:layout_height="48dip">
</Button>
</RelativeLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我有一个MySQL表设置如下:
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| ipaddress_s | varchar(15) | YES | MUL | NULL | |
| ipaddress_e | varchar(16) | YES | | NULL | |
+---------------+-------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
其中,ipaddress_s和ipaddress_e类似于:4.100.159.0-4.100.159.255
现在有一种方法可以实际获得包含给定IP地址的行吗?例如,给定IP地址:"4.100.159.5",我希望返回上面的行.所以我正在尝试看起来像这样的查询(但当然这是错误的,因为在下面我将IP视为字符串):
SELECT * FROM ranges WHERE ipaddress_s<"4.100.159.5" AND ipaddress_e>"4.100.159.5"
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我有一个大图,我正在使用JUNG处理.我想知道JUNG是否提供了一种方法来提取一个顶点的两跳邻域(其中包含所有边缘)到一个单独的图形中?
我想要实现的是从以下形式的表中获取具有最大值的行:
A | B | Ratio
0 | 1 | 1.0
1 | 2 | 1.0
2 | 3 | 1.0
3 | 4 | 0.33
4 | 5 | 0.25
Run Code Online (Sandbox Code Playgroud)
我试图只显示包含最大值的行(在本例中为1.0).可能是我没有这样做.我有一个表格的查询:
SELECT A,B,C
FROM (---Long Sub Query--- Aliased as Full_Table)
WHERE RATIO=(SELECT MAX(RATIO) FROM Full_Table);
Run Code Online (Sandbox Code Playgroud)
但是,无法从第二个子查询引用Full_Table.有些行具有相同的最大值,这是我使用此查询的原因.有没有更好的结构来实现这一目标?在最坏的情况下,我必须用整个长查询替换第二个Full_Table,但我希望有更好的方法来做到这一点.
我是C++的新手.我试图读取一个文件并构建一个查找表(更像是一个哈希表,只是为了检查字符串值的存在).该文件有大约30万个条目,我将用它来构建查找表.在此之后,我将对此执行大约100万次查找.这样做最有效的方法是什么?它是地图(谷歌的第一个结果)还是有更好的结构用于此目的?
是否有一个很好的bash one liner将文件中的字符串映射到唯一的数字?
例如,
a
a
b
b
c
c
Run Code Online (Sandbox Code Playgroud)
应该转换成
1
1
2
2
3
3
Run Code Online (Sandbox Code Playgroud)
我目前正在用C++实现它,但是bash one-liner会很棒.