javascript - A script that loads an image at random from an array without repeating any until all have been viewed -
i running script loads image array @ random each time page refreshed. undesirable feature of script, , every other script have seen online, though there on 100 images in array, loads same image number of times before of images in array have been viewed.
i alter script prevent same image being called twice before of images in array have been viewed. if entirely different approach 1 have taken here preferable, please let me know. also, understanding of javascript shakey thorough explanation of how correct issue helpful.
thanks in advance
here page source:
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <title></title> <link href="css/styles.css" rel="stylesheet" type="text/css"> <!--[if ie]><link href="css/ie-styles.css" rel="stylesheet" type="text/css"><![endif]--> <script type="text/javascript"> <!-- var xoxo = new array(); // array hold filenames xoxo[0] = "images/portrait/fpo/01.jpg" xoxo[1] = "images/portrait/fpo/02.jpg" xoxo[2] = "images/portrait/fpo/03.jpg" xoxo[3] = "images/portrait/fpo/04.jpg" xoxo[4] = "images/portrait/fpo/05.jpg" xoxo[5] = "images/portrait/fpo/06.jpg" xoxo[6] = "images/portrait/fpo/07.jpg" xoxo[7] = "images/portrait/fpo/08.jpg" xoxo[8] = "images/portrait/fpo/09.jpg" xoxo[9] = "images/portrait/fpo/10.jpg" xoxo[10] = "images/portrait/fpo/11.jpg" xoxo[11] = "images/portrait/fpo/12.jpg" xoxo[12] = "images/portrait/fpo/13.jpg" xoxo[13] = "images/portrait/fpo/14.jpg" xoxo[14] = "images/portrait/fpo/15.jpg" xoxo[15] = "images/portrait/fpo/16.jpg" xoxo[16] = "images/portrait/fpo/17.jpg" xoxo[17] = "images/portrait/fpo/18.jpg" xoxo[18] = "images/portrait/fpo/19.jpg" xoxo[19] = "images/portrait/fpo/20.jpg" xoxo[20] = "images/portrait/fpo/21.jpg" xoxo[21] = "images/portrait/fpo/22.jpg" xoxo[22] = "images/portrait/fpo/23.jpg" xoxo[23] = "images/portrait/fpo/24.jpg" xoxo[24] = "images/portrait/fpo/25.jpg" xoxo[25] = "images/portrait/fpo/26.jpg" xoxo[26] = "images/portrait/fpo/27.jpg" xoxo[27] = "images/portrait/fpo/28.jpg" xoxo[28] = "images/portrait/fpo/29.jpg" xoxo[29] = "images/portrait/fpo/30.jpg" xoxo[30] = "images/portrait/fpo/31.jpg" xoxo[31] = "images/portrait/fpo/32.jpg" xoxo[32] = "images/portrait/fpo/33.jpg" xoxo[33] = "images/portrait/fpo/34.jpg" xoxo[34] = "images/portrait/fpo/35.jpg" xoxo[35] = "images/portrait/fpo/36.jpg" xoxo[36] = "images/portrait/fpo/37.jpg" xoxo[37] = "images/portrait/fpo/38.jpg" xoxo[38] = "images/portrait/fpo/39.jpg" xoxo[39] = "images/portrait/fpo/40.jpg" xoxo[40] = "images/portrait/fpo/41.jpg" xoxo[41] = "images/portrait/fpo/42.jpg" xoxo[42] = "images/portrait/fpo/43.jpg" xoxo[43] = "images/portrait/fpo/44.jpg" xoxo[44] = "images/portrait/fpo/45.jpg" xoxo[45] = "images/portrait/fpo/46.jpg" xoxo[46] = "images/portrait/fpo/47.jpg" xoxo[47] = "images/portrait/fpo/48.jpg" xoxo[48] = "images/portrait/fpo/49.jpg" xoxo[49] = "images/portrait/fpo/50.jpg" xoxo[50] = "images/portrait/fpo/51.jpg" xoxo[51] = "images/portrait/fpo/52.jpg" xoxo[52] = "images/portrait/fpo/53.jpg" xoxo[53] = "images/portrait/fpo/54.jpg" xoxo[54] = "images/portrait/fpo/55.jpg" xoxo[55] = "images/portrait/fpo/56.jpg" xoxo[56] = "images/portrait/fpo/57.jpg" xoxo[57] = "images/portrait/fpo/58.jpg" xoxo[58] = "images/portrait/fpo/59.jpg" xoxo[59] = "images/portrait/fpo/60.jpg" xoxo[60] = "images/portrait/fpo/61.jpg" xoxo[61] = "images/portrait/fpo/62.jpg" xoxo[62] = "images/portrait/fpo/63.jpg" xoxo[63] = "images/portrait/fpo/64.jpg" xoxo[64] = "images/portrait/fpo/65.jpg" xoxo[65] = "images/portrait/fpo/66.jpg" xoxo[66] = "images/portrait/fpo/67.jpg" xoxo[67] = "images/portrait/fpo/68.jpg" xoxo[68] = "images/portrait/fpo/69.jpg" xoxo[69] = "images/fashion/fpo/01.jpg" xoxo[70] = "images/fashion/fpo/02.jpg" xoxo[71] = "images/fashion/fpo/03.jpg" xoxo[72] = "images/fashion/fpo/04.jpg" xoxo[73] = "images/fashion/fpo/05.jpg" xoxo[74] = "images/fashion/fpo/06.jpg" xoxo[75] = "images/fashion/fpo/07.jpg" xoxo[76] = "images/fashion/fpo/08.jpg" xoxo[77] = "images/fashion/fpo/09.jpg" xoxo[78] = "images/fashion/fpo/10.jpg" xoxo[79] = "images/fashion/fpo/11.jpg" xoxo[80] = "images/fashion/fpo/12.jpg" xoxo[81] = "images/fashion/fpo/13.jpg" xoxo[82] = "images/fashion/fpo/14.jpg" xoxo[83] = "images/fashion/fpo/15.jpg" xoxo[84] = "images/fashion/fpo/16.jpg" xoxo[85] = "images/fashion/fpo/17.jpg" xoxo[86] = "images/fashion/fpo/18.jpg" xoxo[87] = "images/fashion/fpo/19.jpg" xoxo[88] = "images/fashion/fpo/20.jpg" xoxo[89] = "images/fashion/fpo/21.jpg" xoxo[90] = "images/fashion/fpo/22.jpg" xoxo[91] = "images/fashion/fpo/23.jpg" xoxo[92] = "images/fashion/fpo/24.jpg" xoxo[93] = "images/fashion/fpo/25.jpg" xoxo[94] = "images/fashion/fpo/26.jpg" xoxo[95] = "images/fashion/fpo/27.jpg" xoxo[96] = "images/fashion/fpo/28.jpg" xoxo[97] = "images/fashion/fpo/29.jpg" xoxo[98] = "images/fashion/fpo/30.jpg" xoxo[99] = "images/fashion/fpo/31.jpg" xoxo[100] = "images/fashion/fpo/32.jpg" xoxo[101] = "images/fashion/fpo/33.jpg" xoxo[102] = "images/fashion/fpo/34.jpg" xoxo[103] = "images/fashion/fpo/35.jpg" xoxo[104] = "images/fashion/fpo/36.jpg" xoxo[105] = "images/fashion/fpo/37.jpg" xoxo[106] = "images/fashion/fpo/38.jpg" xoxo[107] = "images/fashion/fpo/39.jpg" xoxo[108] = "images/fashion/fpo/40.jpg" xoxo[109] = "images/fashion/fpo/41.jpg" xoxo[110] = "images/fashion/fpo/42.jpg" xoxo[111] = "images/fashion/fpo/43.jpg" xoxo[112] = "images/fashion/fpo/44.jpg" xoxo[113] = "images/fashion/fpo/45.jpg" xoxo[114] = "images/fashion/fpo/46.jpg" xoxo[115] = "images/fashion/fpo/47.jpg" xoxo[116] = "images/fashion/fpo/48.jpg" xoxo[117] = "images/fashion/fpo/49.jpg" xoxo[118] = "images/fashion/fpo/50.jpg" xoxo[119] = "images/fashion/fpo/51.jpg" xoxo[120] = "images/fashion/fpo/52.jpg" xoxo[121] = "images/fashion/fpo/53.jpg" xoxo[122] = "images/fashion/fpo/54.jpg" xoxo[123] = "images/fashion/fpo/55.jpg" xoxo[124] = "images/fashion/fpo/56.jpg" xoxo[125] = "images/fashion/fpo/57.jpg" xoxo[126] = "images/fashion/fpo/58.jpg" xoxo[127] = "images/fashion/fpo/59.jpg" xoxo[128] = "images/fashion/fpo/60.jpg" xoxo[129] = "images/fashion/fpo/61.jpg" xoxo[130] = "images/fashion/fpo/62.jpg" xoxo[131] = "images/fashion/fpo/63.jpg" xoxo[132] = "images/fashion/fpo/64.jpg" xoxo[133] = "images/fashion/fpo/65.jpg" xoxo[134] = "images/fashion/fpo/66.jpg" xoxo[135] = "images/fashion/fpo/67.jpg" xoxo[136] = "images/fashion/fpo/68.jpg" xoxo[137] = "images/fashion/fpo/69.jpg" xoxo[138] = "images/children/fpo/01.jpg" xoxo[139] = "images/children/fpo/02.jpg" xoxo[140] = "images/children/fpo/03.jpg" xoxo[141] = "images/children/fpo/04.jpg" xoxo[142] = "images/children/fpo/05.jpg" xoxo[143] = "images/children/fpo/06.jpg" xoxo[144] = "images/children/fpo/07.jpg" xoxo[145] = "images/children/fpo/08.jpg" xoxo[146] = "images/children/fpo/09.jpg" xoxo[147] = "images/children/fpo/10.jpg" xoxo[148] = "images/children/fpo/11.jpg" xoxo[149] = "images/children/fpo/12.jpg" xoxo[150] = "images/children/fpo/13.jpg" xoxo[151] = "images/children/fpo/14.jpg" xoxo[152] = "images/children/fpo/15.jpg" xoxo[153] = "images/children/fpo/16.jpg" xoxo[154] = "images/children/fpo/17.jpg" xoxo[155] = "images/children/fpo/18.jpg" xoxo[156] = "images/children/fpo/19.jpg" xoxo[157] = "images/children/fpo/20.jpg" xoxo[158] = "images/children/fpo/21.jpg" xoxo[159] = "images/children/fpo/22.jpg" xoxo[160] = "images/children/fpo/23.jpg" xoxo[161] = "images/children/fpo/24.jpg" xoxo[162] = "images/children/fpo/25.jpg" xoxo[163] = "images/children/fpo/26.jpg" xoxo[164] = "images/children/fpo/27.jpg" xoxo[165] = "images/children/fpo/28.jpg" xoxo[166] = "images/children/fpo/29.jpg" xoxo[167] = "images/children/fpo/30.jpg" xoxo[168] = "images/children/fpo/31.jpg" xoxo[169] = "images/children/fpo/32.jpg" xoxo[170] = "images/children/fpo/33.jpg" xoxo[171] = "images/children/fpo/34.jpg" xoxo[172] = "images/children/fpo/35.jpg" xoxo[173] = "images/children/fpo/36.jpg" xoxo[174] = "images/children/fpo/37.jpg" function pickrandom(range) { if (math.random) return math.round(math.random() * (range-1)); else { var = new date(); return (now.gettime() / 1000) % range; } } // write out img tag, using randomly-chosen image name. var choice = pickrandom(xoxo.length); // --> </script>
<div class="menu"> <a style="color:#000000" href="index.html">index</a><br> <a href="portrait/overview.html">portrait</a><br> <a href="fashion/overview.html">fashion</a><br> <a href="children/overview.html">children</a><br> <a href="clients.html">clients</a><br> <a href="contact.html">contact</a><br> </div> <table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%"> <tr valign="middle"><td align="center"> <a href="index.html"><script type="text/javascript">document.writeln('<img src="'+xoxo[choice]+'" >');</script></a> </td></tr> </table>
since javascript numbers can hold integers of on 50 bits, 3 numbers keep track of 150 files.
the following code provides functions creating, manipulating , interrogating data structure consisting of array of 50 bit numbers:
function set (len) { // establish array of sufficient 50 bit numbers hold len bits this.bits = new array (math.floor ((len + 49) / 50)); this.len = len; // clear numbers (var = this.bits.length; i--;) this.bits[i] = 0; } set.prototype.full = function () { // check if bits of set @ 1 // first check relevant bits of last word if (this.bits[this.bits.length - 1] === math.pow (2, this.len + 1) - 1) // chec tat remaining numbers full (var = this.bits.length - 1; i--;) if (bits[i] !== math.pow (2, 51) - 1) return false; return true; } set.prototype.check = function (n) { // return value (0 or 1) of bit n of set var m = n % 50; return math.floor (this.bits [(n - m) / 50] / math.pow (2, m)) & 1; } set.prototype.add = function (n) { // set bit n of set 1 (unless 1) if (!this.check (n)) { var m = n % 50; this.bits [(n - m) / 50] += math.pow (2, m); return true; } return false; } set.prototype.remove = function (n) { // set bit of set 0 (unless 0) if (this.check (n)) { var m = n % 50; this.bits [(n - m) / 50] -= math.pow (2, m); return true; } return false; } set.prototype.clear = function () { // clear bitsof set 0 (var = this.bits.length; i--;) bits[i] = 0; }
Comments
Post a Comment