如何解决超级链接的非常大的URL问题…使用jQuery或Javascript调用后面的任何perl、php等脚本

如何解决超级链接的非常大的URL问题…使用jQuery或Javascript调用后面的任何perl、php等脚本,javascript,url,hyperlink,ncbi,Javascript,Url,Hyperlink,Ncbi,我已经建立了UI,它就像一个生物过程/疾病-->基因的搜索引擎。e、 例如,用户可以查询:“干细胞”或“脑瘤”,结果将得到50到5000个基因ID(基本上这些数字代表NCBI数据库中的uniqe基因) 这是免费的,您可以尝试: 现在的问题是,我喜欢这些GeneID立即进入NCBI站点。对于多达200或400个GeneID,我可以得到很好的结果。但对于超过500个GeneID,我可以得到“URI太大”错误,或者NCBI网站无法接受巨大的查询。我正在努力解决这个问题 Javascript能否在UNI

我已经建立了UI,它就像一个生物过程/疾病-->基因的搜索引擎。e、 例如,用户可以查询:“干细胞”或“脑瘤”,结果将得到50到5000个基因ID(基本上这些数字代表NCBI数据库中的uniqe基因)

这是免费的,您可以尝试:

现在的问题是,我喜欢这些GeneID立即进入NCBI站点。对于多达200或400个GeneID,我可以得到很好的结果。但对于超过500个GeneID,我可以得到“URI太大”错误,或者NCBI网站无法接受巨大的查询。我正在努力解决这个问题

Javascript能否在UNIX/tmp文件中编写文件?还是有更好的解决办法

在这一点上,任何帮助/指导都很好

提前非常感谢你, 索林

URL太长:


您可以将它们写入cookie,类似于tmp文件。更好的解决方案是发布数据,而不是使用GET。

也许不必一次检索所有结果,您可以在用户单击每个GeneID时对其进行NCBI信息的AJAX检索,将结果添加到页面中。

这里有一些关于URL长度的信息:

基本上,在URL中存储大数据是不可取的

您可能想考虑将这些值放入隐藏的输入控件中,然后将链接发送到服务器的数据。

基本上,不是这样做:

<A href="http://view.ncbi.nlm.nih.gov/gene/1,2,3,4,5">Link Here</A>
<FORM action="http://view.ncbi.nlm.nih.gov/gene/" method="post">
    <input type="hidden" id="genes" name="genes">1,2,3,4,5</input>
    <input type="submit" value="Submit" />
</FORM>

尝试这样做:

<A href="http://view.ncbi.nlm.nih.gov/gene/1,2,3,4,5">Link Here</A>
<FORM action="http://view.ncbi.nlm.nih.gov/gene/" method="post">
    <input type="hidden" id="genes" name="genes">1,2,3,4,5</input>
    <input type="submit" value="Submit" />
</FORM>

1,2,3,4,5

如果无法使用cookie,则url太长。将数据写入数据库中的临时表。一旦数据被保存,发送回一个ID,通过URL传递。您可以通过web服务调用来实现这一点,而不会产生太多问题


另外,在表上加上时间戳,在设定的时间段后删除旧数据。

对于cookie…如果最终用户关闭cookie…那么如何绕过该块呢?我同意Mike的观点--发布数据而不是获取数据。但是我不认为把它们写到cookie中是件好事。我想这就是我喜欢做的。但是有了5000个GeneID,我怎么能在新窗口上查询AJAX呢?因为在同一个页面上,我有多个结果,其中有很多GeneID。。!!?我的意思是将AJAXed信息拉入当前页面,而不是一个新页面,并且只对用户单击的特定GeneID这样做,而不是所有GeneID。哦,在某种程度上你是对的。但问题是我需要创建一个新窗口来显示信息。因为用户可能会点击多组GeneID。。。!!我知道这和我解释的不一样。。。。!!但我刚刚发现了这个STACKOVERFLOW…网站,它太棒了…你们太棒了。。!!我不明白为什么这会产生一个大URI。也许URI长度本身不是问题。除非您有一个引用多个GeneID的特定查询,并且总URI太长?请编辑您的帖子,添加一个URI太长的示例。我尝试过,如果我在隐藏控件或隐藏输入框或显示中放置值:none DIV。。。如何从新窗口逐个读取这些隐藏值..将数据发布到服务器以获取信息。检索。。!?生物研究人员希望一次看到这10000个基因,以了解他们感兴趣的基因,而且NCBI服务器一次容纳的基因不超过500个。。!!嗨,克里斯,这似乎是个好主意。但是这个程序就像搜索引擎一样,即使是同一个用户也会在UI上生成多个查询,所以我仍然在考虑将每个GeneID插入临时表中。。。感谢您的回复。不要将用户id保存在临时表中(顺便说一句,临时表不是真正的临时表。它是临时存储数据的真实表)。无论如何,您可能不需要任何特定于用户的数据。您需要存储的只是获取id的序列,以便以后可以加载它。