comment résoudre un TRÈS GRAND problème d'URL pour un lien hypertexte… avec jQuery ou Javascript appelant n'importe quel perl, php, etc.script au dos

StackOverflow https://stackoverflow.com/questions/863966

Question

J'ai construit une interface utilisateur, c'est comme un moteur de recherche pour BioProcess/Disease -> Genes.par exemple, l'utilisateur peut interroger :"Cellules souches" ou "tumeur cérébrale" et, en conséquence, cela donnera 50 à 5 000 GeneID (essentiellement, ce sont des nombres représentant un gène unique dans la base de données NCBI).

C'est gratuit, vous pouvez essayer sur : http://proteogenomics.musc.edu/genemesh/

Maintenant, le problème est que j'aime immédiatement ces GeneID sur un site NCBI.Pour jusqu'à 200 ou 400 GeneID, je peux obtenir un bon résultat.Mais pour plus de 500 GeneID, je peux obtenir l'erreur "URI TOO LARGE" ou, d'une manière ou d'une autre, le site Web NCBI ne peut pas accepter de requêtes volumineuses.J'essaie de résoudre ce problème.

Javascript, OnClick peuvent-ils écrire un fichier dans un fichier UNIX /tmp ?ou existe-t-il une meilleure solution à ce problème ?

Toute aide/directive est excellente à ce stade...

Merci beaucoup à l'avance, Saurin

URL trop LONGUE :

http://view.ncbi.nlm.nih.gov/gene/30980,31208,31442,31789,32083,32855,33156,33392,33498,34309,35197,35974,36057,38545,38701,42945,43162, 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,1 459, 1462,1464,1471,1474,1485,1490,1493,1499,1508,1512,1520,1543,1545,1571,1594,1600,1605,1612,1620,1622,1630,1633,1638,1641,1 643, 1649,1728,1755,1756,1803,1809,1814,1839,1854,1869,1909,1910,1942,1950,1956,1969,2012,2013,2014,2019,2020,2022,2034,2035,2 044, 2045,2046,2048,2050,2051,2052,2064,2066,2067,2068,2071,2100,2149,2166,2173,2246,2247,2250,2251,2254,2260,2263,2264,2272,2 289, 2290,2305,2308,2309,2321,2335,2475,2542,2547,2574,2579,2621,2627,2670,2734,2735,2736,2737,2738,2740,2849,2890,2896,2901,2 908, 2925,2932,2936,2939,2944,2947,2950,2952,2956,3073,3074,3082,3090,3091,3104,3105,3106,3115,3122,3123,3146,3161,3162,3181,3 191, 3215,3240,3265,3309,3315,3324,3371,3373,3383,3384,3397,3398,3417,3479,3480,3481,3482,3485,3486,3487,3491,3553,3558,3561,3 565, 3566,3569,3574,3575,3596,3597,3598,3603,3611,3621,3630,3632,3645,3672,3685,3688,3717,3732,3738,3741,3766,3785,3791,3814,3 815, 3845,3897,3910,3912,3913,3915,3918,3925,3945,3956,3958,3981,3987,4035,4087,4088,4089,4133,4137,4145,4147,4152,4155,4172,4 175, 4192,4193,4194,4241,4255,4267,4288,4292,4303,4312,4313,4314,4316,4318,4320,4321,4323,4327,4350,4436,4440,4524,4548,4549,4 552, 4574,4601,4609,4654,4684,4691,4735,4745,4763,4771,4790,4804,4807,4808,4829,4830,4843,4851,4856,4893,4907,4914,4915,4916,4 950, 4978,4982,5015,5028,5030,5054,5080,5111,5118,5154,5155,5156,5159,5178,5241,5243,5266,5274,5276,5290,5294,5295,5328,5329,5 334, 5340,5395,5444,5468,5536,5538,5563,5566,5578,5579,5580,5581,5583,5584,5591,5594,5595,5599,5602,5629,5653,5663,5702,5708,5 713, 5725,5727,5728,5730,5743,5745,5747,5764,5781,5803,5805,5834,5835,5879,5880,5881,5888,5894,5898,5899,5900,5915,5921,5925,5 934, 5970,5978,5981,5992,6048,6091,6118,6165,6195,6275,6278,6284,6347,6382,6387,6416,6464,6469,6490,6502,6506,6507,6513,6598,6 606, 6608,6622,6647,6648,6649,6657,6659,6660,6662,6663,6664,6667,6670,6678,6695,6697,6714,6717,6770,6772,6774,6790,6853,6855,6 863, 6892,6900,6948,7012,7013,7015,7018,7020,7025,7040,7042,7054,7057,7076,7078,7105,7124,7153,7157,7161,7168,7175,7185,7186,7 248, 7249,7258,7262,7276,7277,7283,7298,7422,7428,7431,7442,7447,7468,7474,7490,7508,7515,7517,7518,7520,7525,7545,7799,7849,7 852, 7980,8028,8038,8061,8089,8140,8190,8301,8372,8484,8507,8577,8605,8650,8678,8682,8692,8718,8737,8741,8742,8743,8745,8754,8 771, 8772,8788,8795,8797,8811,8828,8829,8841,8842,8848,8851,8862,8871,8877,8928,8930,9077,9100,9113,9141,9148,9156,9173,9211,9 212, 9232,9334,9353,9423,9429,9444,9445,9447,9459,9507,9518,9535,9545,9588,9681,9806,9833,9844,9961,10036,10135,10209,10215,10 313,10362, 10371,10381,10401,10472,10512,10530,10572,10620,10630,10642,10743,10763,10776,10855,10893,10991,11009,11010,11013,11065,1 1093,11095,11096,11141,11156, 11162,11186,11191,11200,11235,11284,22865,22933,22943,23136,23152,23162,23209,23261,23308,23336,23435,23469,23627,23654,2 3705,25776,25792,25855,26013, 26038,26050,26136,26256,26471,26524,27122,28514,29103,29108,29126,29997,29998,30001,50618,50859,50943,51050,51147,51199,5 1213,51230,51305,51330,51335, 51438,51637,51668,51747,51763,53358,53615,53616,54106,54828,55210,55294,55553,55717,55752,55760,55859,56647,56920,57124,5 7142,57447,57448,57670,60672, 63827,64101,64386,64710,64805,65065,79659,79682,79944,80309,80332,80381,80781,81557,83483,83605,83667,83858,84148,84189,8 4280,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,1 2606,12767,12945,13003,13051, 13176,13193,13197,13555,13730,13731,13732,13846,13866,14080,14102,14164,14254,14360,14397,14580,14609,14632,14633,14634,1 4714,14751,14825,14829,14910, 15160,15218,15251,15413,15442,15529,15901,16153,16483,16542,16653,16765,16847,17125,17196,17246,17390,17395,17869,17920,1 8008,18015,18016,18040,18071, 18072,18125,18128,18133,18208,18386,18507,18591,18595,18616,18708,18787,18792,18793,18996,18997,19090,19118,19122,19206,1 9211,19227,19247,19373,19377, 19531,19557,19645,19650,19651,20423,20511,20713,20720,20848,20849,20852,20981,21333,21367,21375,21687,21826,21846,21948,2 2059,22339,22596,22612,23796, 30878,30957,50490,50913,50914,54725,55992,56458,56717,60609,64930,66395,66471,67903,71722,74318,7 5409,76965,79401,81897,83485, 107831,110105,110122,111364,111519,170756,192198,210933,211323,216225,218397,230775,232286,239250,245446,245450,269608,38 6750,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,2 5589,25617,25621,25647,25712, 81649,81651,81686,83425,8 3476,83497,83785,84114,84353, 306464,30 8435,338474,360457,362317,369119,2828259,155871, 156110,908122,4981003,4981004,4981005,4981006,4981007,4981008,4981009,4981010,4981011,4981012,4981013,4981014,4981015,498 1016,4981017,4981018,4981019,4981020,4981021,4981022,4981023,4981024,4981025, 4981026,4981027,4981028,4981029,4981030,4981031,4981032,4981033,4981034,4981035,4981036,4981037,4981038,4981039,4981040,4 981041,4981042,4981043,4981045,4981046,4981047,4981048,4981049,4981050,4981051, 4981052,4981053,4981054,4981055,4981056,4981057,4981058,4981059,4981060,4981061,4981062,4981063,4981064,4981065,4981066,4 981067,4981068,4981069,4981070,4981071,4981072,4981073,4981074,4981075,4981076, 4981077,4981078,4981079,4981080,4981081,4981082,4981083,4981084,4981085,4981086,4981087,4981088,4981089,4981090,4981091,4 981092,4981093,4981094,4981095,4981096,4981097,4981098,4981099,4981100,4981101, 4981102,4981103,4981104,4981105,4981106,4981107,4981108,4981109,4981110,4981111,4981112,4981113,4981115,4981116,4981117,4 981118,4981119,4981120,4981121,4981125,4981126,4981128,4981129,4981130,4981131, 4981132,4981133,4981134,4981135,4981136,4981137,4981138,4981139,4981140,4981141,4981142,4981143,4981144,4981145,4981146,4 981147,4981148,4981149,4981150,4981151,4981152,4981153,4981154,4981155,4981157, 4981158,4981159,4981160,4981161,4981162,4981163,4981164,4981165,4981166,4981167,4981168,4981169,4981170,4981171,4981172,4 981173,4981174,4981175,4981176,4981177,4981178,4981179,4981180,4981181,4981182, 4981183,4981184,4981185,4981186,4981187,4981188,4981189,4981190,4981191,4981192,4981193,4981194,4981195,4981196,4981197,4 981198,4981199,4981200,4981201,4981202,4981203,4981204,4981205,4981206,4981207, 4981208,4981209,4981210,4981211,4981212,4981213,4981214,4981215,4981216,4981217,4981218,4981219,4981220,4981221,4981222,4 981223,4981224,4981225,4981226,4981227,4981228,4981229,4981230,4981231,4981232, 4981233,4981234,4981235,4981236,4981237,4981238,4981239,4981240,4981241,4981242,4981243,4981244,4981245,4981246,4981247,4 981248,4981249,4981250,4981251,4981252,4981253,4981254,4981255,4981256,4981257, 4981258,4981259,4981260,4981261,4981262,4981263,4981264,4981265,4981266,4981267,4981268,4981269,4981270,4981271,944996,94 6069

Était-ce utile?

La solution

Si vous ne pouvez pas utiliser de cookie, l'url est trop longue.Écrivez les données dans une table temporaire dans une base de données.Une fois les données enregistrées, renvoyez un identifiant et transmettez-le via l'URL.Vous pouvez le faire via un appel de service Web sans trop de problème.

Mettez également un horodatage sur la table, supprimez les anciennes données après une période de temps définie.

Autres conseils

Vous pouvez les écrire dans un cookie, une sorte d'équivalent d'un fichier tmp.Une bien meilleure solution serait de POSTer vos données au lieu d'utiliser un GET.

Vous trouverez ici des informations sur la longueur des URL : http://www.boutell.com/newfaq/misc/urllength.html

Fondamentalement, il n’est pas conseillé de stocker des données volumineuses dans une URL.

Vous voudrez peut-être envisager de placer les valeurs dans un contrôle d'entrée HIDDEN, puis de demander au lien de publier ces données sur votre serveur.

En gros, au lieu de faire ça :

<A href="http://view.ncbi.nlm.nih.gov/gene/1,2,3,4,5">Link Here</A>

Essayez de faire ceci :

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

Peut-être qu'au lieu de récupérer tous les résultats en même temps, vous pourriez effectuer une récupération AJAX des informations NCBI pour chaque GeneID lorsque l'utilisateur clique dessus, en ajoutant les résultats à la page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top