คำถามติดแท็ก javascript

สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมใน ECMAScript (JavaScript / JS) และภาษา / การใช้งานต่างๆ (ไม่รวม ActionScript) แท็กนี้ไม่ค่อยได้ใช้คนเดียว แต่ส่วนใหญ่มักจะเกี่ยวข้องกับแท็ก [node.js], [jquery], [json] และ [html]

30
จะบังคับให้เบราว์เซอร์โหลดไฟล์ CSS / JS ที่แคชได้อย่างไร
ฉันสังเกตเห็นว่าบางเบราว์เซอร์ (โดยเฉพาะ Firefox และ Opera) มีความกระตือรือร้นอย่างมากในการใช้สำเนาไฟล์. cssและ. js ที่แคชไว้แม้ระหว่างช่วงเบราว์เซอร์ สิ่งนี้นำไปสู่ปัญหาเมื่อคุณอัปเดตหนึ่งในไฟล์เหล่านี้ แต่เบราว์เซอร์ของผู้ใช้ยังคงใช้แคชที่คัดลอก คำถามคือ: วิธีที่ดีที่สุดในการบังคับให้เบราว์เซอร์ของผู้ใช้โหลดไฟล์ใหม่เมื่อมีการเปลี่ยนแปลงคืออะไร? เป็นการดีที่โซลูชันจะไม่บังคับให้เบราว์เซอร์โหลดไฟล์ซ้ำทุกครั้งที่เข้าชมหน้าเว็บ ฉันจะโพสต์คำตอบของตัวเอง แต่ฉันอยากรู้ว่าใครมีวิธีแก้ปัญหาที่ดีกว่าและฉันจะให้คะแนนโหวตของคุณตัดสินใจ อัปเดต: หลังจากให้การสนทนาที่นี่ซักพักฉันพบว่าคำแนะนำของJohn Millikinและda5idมีประโยชน์ ปรากฎว่ามีคำสำหรับสิ่งนี้: การกำหนดเวอร์ชันอัตโนมัติ ฉันโพสต์คำตอบใหม่ด้านล่างซึ่งเป็นการผสมผสานระหว่างโซลูชันดั้งเดิมและคำแนะนำของจอห์น แนวคิดอื่นที่แนะนำโดยSCdFก็คือการผนวกสตริงข้อความค้นหาปลอมเข้ากับไฟล์ (รหัสไพ ธ อนบางตัวจะใช้การประทับเวลาโดยอัตโนมัติเนื่องจากสตริงการสืบค้นที่ปลอมเป็นการส่งโดยpi .) อย่างไรก็ตามมีการสนทนากันว่าเบราว์เซอร์จะแคชไฟล์ด้วยสตริงการสืบค้นหรือไม่ (โปรดจำไว้ว่าเราต้องการให้เบราว์เซอร์แคชไฟล์และใช้ในการเข้าชมในอนาคตเราต้องการให้เรียกไฟล์อีกครั้งเมื่อมีการเปลี่ยนแปลง) เนื่องจากยังไม่ชัดเจนว่าเกิดอะไรขึ้นกับสตริงข้อความปลอมฉันจึงไม่ยอมรับคำตอบนั้น

27
ฉันจะประกาศเนมสเปซใน JavaScript ได้อย่างไร
ฉันจะสร้างเนมสเปซใน JavaScript เพื่อให้วัตถุและฟังก์ชั่นของฉันไม่ได้ถูกเขียนทับโดยวัตถุและฟังก์ชั่นที่มีชื่อเดียวกันอื่น ๆ ได้อย่างไร ฉันใช้สิ่งต่อไปนี้: if (Foo == null || typeof(Foo) != "object") { var Foo = new Object();} มีวิธีที่สง่างามหรือกระชับกว่านี้หรือไม่?

30
จะเปรียบเทียบอาร์เรย์ใน JavaScript ได้อย่างไร
ฉันต้องการเปรียบเทียบสองอาร์เรย์ ... นึกคิดมีประสิทธิภาพ ไม่มีอะไรแฟนซีtrueถ้าพวกเขาเหมือนกันและfalseถ้าไม่ ไม่น่าแปลกใจที่ผู้ดำเนินการเปรียบเทียบไม่ทำงาน var a1 = [1,2,3]; var a2 = [1,2,3]; console.log(a1==a2); // Returns false console.log(JSON.stringify(a1)==JSON.stringify(a2)); // Returns true JSON เข้ารหัสแต่ละอาร์เรย์ทำ แต่มีวิธีที่เร็วกว่าหรือ "ดีกว่า" ในการเปรียบเทียบอาร์เรย์โดยไม่ต้องวนซ้ำแต่ละค่าหรือไม่
988 javascript  arrays  json 

16
ฉันสามารถซ่อนกล่องสปินของการป้อนหมายเลข HTML5 ได้หรือไม่?
มีวิธีที่สอดคล้องกันในทุกเบราว์เซอร์เพื่อซ่อนสปินบ็อกซ์ใหม่ที่บางเบราว์เซอร์ (เช่น Chrome) แสดงผลสำหรับการป้อน HTML ของหมายเลขประเภท? ฉันกำลังมองหาวิธี CSS หรือ JavaScript เพื่อป้องกันไม่ให้ลูกศรขึ้น / ลงปรากฏ <input id="test" type="number">
984 javascript  css  html  input  numbers 

23
คุณจะรับรายชื่อของไฟล์ทั้งหมดที่มีอยู่ในไดเรกทอรีใน Node.js ได้อย่างไร?
ฉันพยายามรับรายชื่อของไฟล์ทั้งหมดที่มีอยู่ในไดเรกทอรีโดยใช้ Node.js ฉันต้องการเอาต์พุตที่เป็นอาร์เรย์ของชื่อไฟล์ ฉันจะทำสิ่งนี้ได้อย่างไร



30
การแปลงวัตถุเป็นสตริง
ฉันจะแปลงวัตถุ JavaScript เป็นสตริงได้อย่างไร ตัวอย่าง: var o = {a:1, b:2} console.log(o) console.log('Item: ' + o) เอาท์พุท: วัตถุ {a = 1, b = 2} // ผลลัพธ์ที่อ่านได้ดีมาก :) รายการ: [วัตถุวัตถุ] // ไม่ทราบว่ามีอะไรอยู่ภายใน :(


15
วิธีการขยายอาร์เรย์ JavaScript ที่มีอยู่ด้วยอาร์เรย์อื่นโดยไม่ต้องสร้างอาร์เรย์ใหม่
ดูเหมือนจะไม่มีวิธีที่จะขยายอาร์เรย์ JavaScript ที่มีอยู่กับอาร์เรย์อื่นเช่นเพื่อเลียนแบบextendวิธีการของ Python ฉันต้องการบรรลุสิ่งต่อไปนี้: >>> a = [1, 2] [1, 2] >>> b = [3, 4, 5] [3, 4, 5] >>> SOMETHING HERE >>> a [1, 2, 3, 4, 5] ฉันรู้ว่ามันมีa.concat(b)วิธีการ แต่มันสร้างอาเรย์ใหม่แทนที่จะขยายออกไปอย่างแรก ฉันต้องการอัลกอริทึมที่ทำงานอย่างมีประสิทธิภาพเมื่อaมีขนาดใหญ่กว่าอย่างมากb(เช่นที่ไม่ได้คัดลอกa) หมายเหตุ:นี่ไม่ใช่สิ่งที่ซ้ำกันของวิธีผนวกบางสิ่งเข้ากับอาร์เรย์ - เป้าหมายที่นี่คือการเพิ่มเนื้อหาทั้งหมดของอาเรย์หนึ่งไปยังอีกอาเรย์และเพื่อทำมัน "ในสถานที่" คือโดยไม่ต้องคัดลอกองค์ประกอบทั้งหมดของอาเรย์ขยาย

21
รับ ID ขององค์ประกอบที่ยิงเหตุการณ์
มีวิธีการรับ ID ขององค์ประกอบที่ไฟเหตุการณ์? ฉันกำลังคิดเช่น: $(document).ready(function() { $("a").click(function() { var test = caller.id; alert(test.val()); }); }); <script type="text/javascript" src="starterkit/jquery.js"></script> <form class="item" id="aaa"> <input class="title"></input> </form> <form class="item" id="bbb"> <input class="title"></input> </form> เรียกใช้ข้อมูลโค้ดซ่อนผลลัพธ์ขยายตัวอย่างข้อมูล ยกเว้นหลักสูตรที่ var testควรมี id "aaa"หากเหตุการณ์ถูกไล่ออกจากฟอร์มแรกและ"bbb"หากเหตุการณ์ถูกไล่ออกจากฟอร์มที่สอง
969 javascript  jquery 

25
ใน Node.js ฉันจะ "รวม" ฟังก์ชั่นจากไฟล์อื่น ๆ ของฉันได้อย่างไร?
สมมติว่าฉันมีไฟล์ชื่อ app.js. ค่อนข้างง่าย: var express = require('express'); var app = express.createServer(); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.get('/', function(req, res){ res.render('index', {locals: { title: 'NowJS + Express Example' }}); }); app.listen(8080); ถ้าฉันมีฟังก์ชั่นอยู่ภายใน "tools.js" ฉันจะนำเข้าพวกเขาไปใช้ใน apps.js ได้อย่างไร หรือ ... ฉันควรจะเปลี่ยน "เครื่องมือ" เป็นโมดูลแล้วต้องใช้หรือไม่ << ดูยากฉันค่อนข้างจะนำเข้าขั้นพื้นฐานของไฟล์ tools.js


21
จำนวนเต็มสูงสุดของ JavaScript คือจำนวนใดที่สามารถไปได้โดยไม่สูญเสียความแม่นยำ
สิ่งนี้ถูกกำหนดโดยภาษาหรือไม่ มีค่าสูงสุดที่กำหนดหรือไม่? มันแตกต่างกันในเบราว์เซอร์ที่แตกต่างกันอย่างไร

26
ฉันจะรู้ได้อย่างไรว่าองค์ประกอบ DOM สามารถมองเห็นได้ในวิวพอร์ตปัจจุบันหรือไม่?
มีวิธีที่มีประสิทธิภาพในการบอกหรือไม่ว่าองค์ประกอบ DOM (ในเอกสาร HTML) สามารถมองเห็นได้ในปัจจุบัน (ปรากฏในวิวพอร์ต ) หรือไม่? (คำถามหมายถึง Firefox)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.