2009-05-14 9 views
3

나는 BioProcess/Disease -> Genes에 대한 검색 엔진과 같은 UI를 만들었습니다. 예를 들어, 사용자는 "줄기 세포"또는 "뇌종양"을 질의 할 수 있으며 결과적으로 50 내지 5000 개의 유전자 ID (본질적으로 NCBI 데이터베이스에서 단일 유전자를 나타내는 숫자)를 제공합니다. http://proteogenomics.musc.edu/genemesh/하이퍼 링크에 대한 매우 큰 URL 문제를 해결하는 방법 ... jQuery 또는 Javascript를 사용하여 뒷쪽에있는 perl, PHP 등 스크립트 호출

지금, 문제는 내가 한 번에 NCBI 사이트에 그 GeneIDs을 좋아하고 있습니다 :

자유, 당신은 시도 할 수 있습니다. 개까지 200 또는 400 GeneIDs 나는 결과를 잘 얻을 수 있습니다. 하지만 500 GeneIDs 이상 나는 "URI가 너무 큰"오류 또는 어떻게 든 NCBI 웹 사이트는 거대한 쿼리를 받아 들일 수 없다 얻을 수 있습니다. 이 문제를 해결하기 위해 노력하고 있습니다.

Javascript, OnClick은 UNIX/tmp 파일에 파일을 쓸 수 있습니까? 또는 이것에 대한 더 나은 해결책이 있습니까?

가 사전에 너무 감사합니다 어떤 도움/지침이 시점에서 중대하다

..., Saurin 너무 오래

URL :

http://view.ncbi.nlm.nih.gov/gene/30980,31208,31442,31789,32083,32855,33156,33392,33498,34309,35197,35974,36057,38545,38701,42945,43162,43256,43288,43739,44900,45339,45775,3772082,260437,393632,406845,379537,379620,399306,100037057,100037058,100037249,10,40,43,60,104,133,174,182,185,186,187,197,207,208,210,238,240,269,284,285,317,324,328,332,335,351,355,356,358,361,366,379,387,388,396,429,462,466,472,482,558,567,573,575,576,577,581,595,596,598,604,648,650,664,672,673,675,706,712,754,761,768,771,800,836,841,842,847,857,860,875,885,889,890,891,902,960,970,978,983,999,1000,1018,1019,1021,1025,1026,1027,1029,1030,1031,1051,1082,1111,1116,1124,1131,1152,1231,1234,1272,1282,1284,1285,1286,1287,1288,1316,1432,1457,1459,1462,1464,1471,1474,1485,1490,1493,1499,1508,1512,1520,1543,1545,1571,1594,1600,1605,1612,1620,1622,1630,1633,1638,1641,1643,1649,1728,1755,1756,1803,1809,1814,1839,1854,1869,1909,1910,1942,1950,1956,1969,2012,2013,2014,2019,2020,2022,2034,2035,2044,2045,2046,2048,2050,2051,2052,2064,2066,2067,2068,2071,2100,2149,2166,2173,2246,2247,2250,2251,2254,2260,2263,2264,2272,2289,2290,2305,2308,2309,2321,2335,2475,2542,2547,2574,2579,2621,2627,2670,2734,2735,2736,2737,2738,2740,2849,2890,2896,2901,2908,2925,2932,2936,2939,2944,2947,2950,2952,2956,3073,3074,3082,3090,3091,3104,3105,3106,3115,3122,3123,3146,3161,3162,3181,3191,3215,3240,3265,3309,3315,3324,3371,3373,3383,3384,3397,3398,3417,3479,3480,3481,3482,3485,3486,3487,3491,3553,3558,3561,3565,3566,3569,3574,3575,3596,3597,3598,3603,3611,3621,3630,3632,3645,3672,3685,3688,3717,3732,3738,3741,3766,3785,3791,3814,3815,3845,3897,3910,3912,3913,3915,3918,3925,3945,3956,3958,3981,3987,4035,4087,4088,4089,4133,4137,4145,4147,4152,4155,4172,4175,4192,4193,4194,4241,4255,4267,4288,4292,4303,4312,4313,4314,4316,4318,4320,4321,4323,4327,4350,4436,4440,4524,4548,4549,4552,4574,4601,4609,4654,4684,4691,4735,4745,4763,4771,4790,4804,4807,4808,4829,4830,4843,4851,4856,4893,4907,4914,4915,4916,4950,4978,4982,5015,5028,5030,5054,5080,5111,5118,5154,5155,5156,5159,5178,5241,5243,5266,5274,5276,5290,5294,5295,5328,5329,5334,5340,5395,5444,5468,5536,5538,5563,5566,5578,5579,5580,5581,5583,5584,5591,5594,5595,5599,5602,5629,5653,5663,5702,5708,5713,5725,5727,5728,5730,5743,5745,5747,5764,5781,5803,5805,5834,5835,5879,5880,5881,5888,5894,5898,5899,5900,5915,5921,5925,5934,5970,5978,5981,5992,6048,6091,6118,6165,6195,6275,6278,6284,6347,6382,6387,6416,6464,6469,6490,6502,6506,6507,6513,6598,6606,6608,6622,6647,6648,6649,6657,6659,6660,6662,6663,6664,6667,6670,6678,6695,6697,6714,6717,6770,6772,6774,6790,6853,6855,6863,6892,6900,6948,7012,7013,7015,7018,7020,7025,7040,7042,7054,7057,7076,7078,7105,7124,7153,7157,7161,7168,7175,7185,7186,7248,7249,7258,7262,7276,7277,7283,7298,7422,7428,7431,7442,7447,7468,7474,7490,7508,7515,7517,7518,7520,7525,7545,7799,7849,7852,7980,8028,8038,8061,8089,8140,8190,8301,8372,8484,8507,8577,8605,8650,8678,8682,8692,8718,8737,8741,8742,8743,8745,8754,8771,8772,8788,8795,8797,8811,8828,8829,8841,8842,8848,8851,8862,8871,8877,8928,8930,9077,9100,9113,9141,9148,9156,9173,9211,9212,9232,9334,9353,9423,9429,9444,9445,9447,9459,9507,9518,9535,9545,9588,9681,9806,9833,9844,9961,10036,10135,10209,10215,10313,10362,10371,10381,10401,10472,10512,10530,10572,10620,10630,10642,10743,10763,10776,10855,10893,10991,11009,11010,11013,11065,11093,11095,11096,11141,11156,11162,11186,11191,11200,11235,11284,22865,22933,22943,23136,23152,23162,23209,23261,23308,23336,23435,23469,23627,23654,23705,25776,25792,25855,26013,26038,26050,26136,26256,26471,26524,27122,28514,29103,29108,29126,29997,29998,30001,50618,50859,50943,51050,51147,51199,51213,51230,51305,51330,51335,51438,51637,51668,51747,51763,53358,53615,53616,54106,54828,55210,55294,55553,55717,55752,55760,55859,56647,56920,57124,57142,57447,57448,57670,60672,63827,64101,64386,64710,64805,65065,79659,79682,79944,80309,80332,80381,80781,81557,83483,83605,83667,83858,84148,84189,84280,84504,84525,84631,84654,84707,84708,91419,92140,112755,114798,116448,116986,121227,129787,139065,140885,146691,146956,160728,162979,163732,200895,253260,253738,259266,284217,284459,286527,338030,342945,375790,399473,406907,406991,407043,646555,728239,100133941,403412,396562,396783,751862,100125840,100125841,282862,100008679,11539,11545,11601,11622,11629,11651,11731,11783,11789,11799,11829,11920,11932,12028,12035,12140,12151,12211,12307,12308,12344,12389,12390,12505,12519,12554,12575,12578,12606,12767,12945,13003,13051,13176,13193,13197,13555,13730,13731,13732,13846,13866,14080,14102,14164,14254,14360,14397,14580,14609,14632,14633,14634,14714,14751,14825,14829,14910,15160,15218,15251,15413,15442,15529,15901,16153,16483,16542,16653,16765,16847,17125,17196,17246,17390,17395,17869,17920,18008,18015,18016,18040,18071,18072,18125,18128,18133,18208,18386,18507,18591,18595,18616,18708,18787,18792,18793,18996,18997,19090,19118,19122,19206,19211,19227,19247,19373,19377,19531,19557,19645,19650,19651,20423,20511,20713,20720,20848,20849,20852,20981,21333,21367,21375,21687,21826,21846,21948,22059,22339,22596,22612,23796,26362,26413,26417,26434,30878,30957,50490,50913,50914,54725,55992,56458,56717,60609,64930,66395,66471,67903,71722,74318,75409,76965,79401,81897,83485,107831,110105,110122,111364,111519,170756,192198,210933,211323,216225,218397,230775,232286,239250,245446,245450,269608,386750,24248,24329,24338,24387,24392,24464,24482,24498,24615,24835,24842,24929,25026,25112,25124,25125,25163,25240,25264,25265,25404,25408,25425,25445,25491,25496,25550,25589,25617,25621,25647,25712,29290,29386,29527,29543,29597,29665,50557,50577,50658,50689,54250,54251,59086,64157,64803,65054,81649,81651,81686,83425,83476,83497,83785,84114,84353,84357,84394,84577,84578,89804,89805,89807,114122,114851,116554,116590,116996,117273,170568,192248,292994,297893,306464,308435,338474,360457,362317,369119,2828259,155871,156110,908122,4981003,4981004,4981005,4981006,4981007,4981008,4981009,4981010,4981011,4981012,4981013,4981014,4981015,4981016,4981017,4981018,4981019,4981020,4981021,4981022,4981023,4981024,4981025,4981026,4981027,4981028,4981029,4981030,4981031,4981032,4981033,4981034,4981035,4981036,4981037,4981038,4981039,4981040,4981041,4981042,4981043,4981045,4981046,4981047,4981048,4981049,4981050,4981051,4981052,4981053,4981054,4981055,4981056,4981057,4981058,4981059,4981060,4981061,4981062,4981063,4981064,4981065,4981066,4981067,4981068,4981069,4981070,4981071,4981072,4981073,4981074,4981075,4981076,4981077,4981078,4981079,4981080,4981081,4981082,4981083,4981084,4981085,4981086,4981087,4981088,4981089,4981090,4981091,4981092,4981093,4981094,4981095,4981096,4981097,4981098,4981099,4981100,4981101,4981102,4981103,4981104,4981105,4981106,4981107,4981108,4981109,4981110,4981111,4981112,4981113,4981115,4981116,4981117,4981118,4981119,4981120,4981121,4981125,4981126,4981128,4981129,4981130,4981131,4981132,4981133,4981134,4981135,4981136,4981137,4981138,4981139,4981140,4981141,4981142,4981143,4981144,4981145,4981146,4981147,4981148,4981149,4981150,4981151,4981152,4981153,4981154,4981155,4981157,4981158,4981159,4981160,4981161,4981162,4981163,4981164,4981165,4981166,4981167,4981168,4981169,4981170,4981171,4981172,4981173,4981174,4981175,4981176,4981177,4981178,4981179,4981180,4981181,4981182,4981183,4981184,4981185,4981186,4981187,4981188,4981189,4981190,4981191,4981192,4981193,4981194,4981195,4981196,4981197,4981198,4981199,4981200,4981201,4981202,4981203,4981204,4981205,4981206,4981207,4981208,4981209,4981210,4981211,4981212,4981213,4981214,4981215,4981216,4981217,4981218,4981219,4981220,4981221,4981222,4981223,4981224,4981225,4981226,4981227,4981228,4981229,4981230,4981231,4981232,4981233,4981234,4981235,4981236,4981237,4981238,4981239,4981240,4981241,4981242,4981243,4981244,4981245,4981246,4981247,4981248,4981249,4981250,4981251,4981252,4981253,4981254,4981255,4981256,4981257,4981258,4981259,4981260,4981261,4981262,4981263,4981264,4981265,4981266,4981267,4981268,4981269,4981270,4981271,944996,946069

+0

이것이 왜 큰 URI를 생성하는지는 알 수 없습니다. 아마도 URI 길이는 문제가 아닙니다. 어쩌면 여러 GeneID를 참조하는 특정 쿼리가 있고 총 URI가 너무 길지 않다면? 게시물을 편집하여 너무 긴 URI를 가져 오는 URI의 예를 추가하십시오. –

답변

0

당신이 쿠키를 사용할 수없는 경우 URL이 너무 깁니다. 데이터를 데이터베이스의 임시 테이블에 씁니다. 데이터가 저장되면 ID를 보내 URL을 통해 전달합니다. 너무 많은 문제없이 웹 서비스 호출을 통해이 작업을 수행 할 수 있습니다.

또한 테이블에 시간 소인을 넣고 설정된 시간 후에 오래된 데이터를 잘라냅니다.

+0

안녕하세요 크리스, 좋은 생각 같아요.하지만 프로그램이 검색 엔진과 같아서 여러 사용자가 동일한 UI로 여러 쿼리를 생성 할 수 있습니다. GeneID를 임시 테이블에 ... 답장을 보내 주셔서 감사합니다 –

+0

임시 테이블에 사용자 ID를 저장하지 마십시오 (임시 테이블, btw, 실제로 임시 테이블이 아닙니다. 임시로 데이터를 저장하기위한 실제 테이블입니다). 어쨌든 사용자 별 데이터가 필요하지 않을 수도 있습니다. 저장해야하는 것은 나중에로드 할 수 있도록 ID를 가져 오는 시퀀스입니다. –

+0

감사합니다 크리스 ... 나는 그 좋은 생각을 생각하고있는 것처럼 보입니다. !! –

6

당신이 그들을 쓸 수 tmp 파일에 해당하는 일종의 쿠키. 훨씬 더 나은 해결책은 POST 대신 GET을 사용하여 데이터를 POST하는 것입니다.

+0

쿠키의 경우 ... 쿠키가 최종 사용자에 의해 해제 된 경우 ... 그 블록을 돌아 다니는 방법은 무엇입니까? –

+1

데이터를 얻는 대신 Mike - POST에 동의합니다. 나는 쿠키를 쓰는 것이 좋을 것이라고 생각하지 않는다. –

+0

도움을 주셔서 감사합니다 ... –

0

모든 결과를 한 번에 검색하는 대신 사용자가 클릭하면 결과를 페이지에 추가하여 각 GeneID에 대한 NCBI 정보를 AJAX 검색 할 수 있습니다. URL에 대한 몇 가지 정보가있다

+0

내가 뭘 좋아하는 것 같아요.하지만 5000 GeneIDs로 새 창에서 AJAX를 어떻게 쿼리 할 수 ​​있습니까?동일한 페이지에 GeneIDs가 많은 결과가 여러 개 있기 때문에 ... !! –

+0

도움을 주셔서 감사합니다 ... –

+0

AJAXed 정보를 새 페이지가 아닌 현재 페이지로 가져 오는 것입니다. 사용자가 클릭하는 특정 GeneID에만 적용됩니다. – chaos

4

여기 길이 : http://www.boutell.com/newfaq/misc/urllength.html

하는 것은 기본적으로 URL에 대용량 데이터를 저장하는 것은 바람직하지 않습니다.

값을 HIDDEN 입력 컨트롤에 넣은 다음 해당 데이터를 서버에 게시하도록 링크를 설정하는 것이 좋습니다.

기본적으로, 대신이 일을 :

<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> 
+0

숨겨진 컨트롤이나 숨겨진 입력 상자 또는 디스플레이에 값을 입력하면이를 시도했습니다. none DIV ... 새 창에서 숨겨진 값을 하나씩 읽는 방법 .. 정보 용 서버에 데이터를 게시하는 방법 . 재 입국 ..!? –

+0

Bio Researchers는 한 번에 10000 개의 GeneID를보고 싶어합니다. NCBI 서버는 한 번에 500 개 이상의 GeneID를 수용 할 수 없습니다 .. !! –

+0

당신의 도움에 감사드립니다 ... –