มีปัญหาเล็กน้อยที่นี่ ประการแรกวิธีการโหลด async ที่คุณระบุ:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.3.1');
google.setOnLoadCallback(function() {
// do stuff
});
</script>
มีปัญหาสองสามข้อ แท็กสคริปต์หยุดการโหลดหน้าเว็บชั่วคราวขณะที่ถูกดึงข้อมูล (ถ้าจำเป็น) ตอนนี้ถ้าโหลดช้ามันไม่ดี แต่ jQuery มีขนาดเล็ก ปัญหาที่เกิดขึ้นจริงกับวิธีการดังกล่าวคือเนื่องจากภาระ jquery.js เกิดขึ้นอย่างอิสระหลายหน้าพวกเขาจะโหลดเสร็จและแสดงผลก่อนที่จะมีการโหลด jQuery เพื่อ jQuery ใด ๆ จัดแต่งทรงผมที่คุณทำจะมีการเปลี่ยนแปลงที่เห็นได้สำหรับผู้ใช้
วิธีอื่นคือ:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
ลองตัวอย่างง่ายๆเช่นมีตารางอย่างง่ายและเปลี่ยนพื้นหลังของเซลล์เป็นสีเหลืองด้วยเมธอด setOnLoadCallback () เทียบกับ $ (เอกสาร). ready () พร้อมโหลด jquery.min.js แบบคงที่ วิธีที่สองจะไม่มีการสั่นไหวที่เห็นได้ชัดเจน ความประสงค์แรก โดยส่วนตัวฉันคิดว่านั่นไม่ใช่ประสบการณ์การใช้งานที่ดี
ตัวอย่างการรันสิ่งนี้:
<html>
<head>
<title>Layout</title>
<style type="text/css">
.odd { background-color: yellow; }
</style>
</head>
<body>
<table>
<tr><th>One</th><th>Two</th></tr>
<tr><td>Three</td><td>Four</td></tr>
<tr><td>Five</td><td>Six</td></tr>
<tr><td>Seven</td><td>Nine</td></tr>
<tr><td>Nine</td><td>Ten</td></tr>
</table>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.1");
google.setOnLoadCallback(function() {
$(function() {
$("tr:odd").addClass("odd");
});
});
</script>
</body>
</html>
คุณ (ควร) เห็นตารางปรากฏขึ้นจากนั้นแถวจะเป็นสีเหลือง
ปัญหาที่สองกับเมธอด google.load () คือโฮสต์ไฟล์ในวง จำกัด ปัญหานี้เป็นปัญหาสำหรับ jquery เนื่องจากขึ้นอยู่กับปลั๊กอินอย่างมาก หากคุณลองและรวมปลั๊กอิน jquery ด้วย<script src="...">
แท็กและgoogle.load()
ปลั๊กอินอาจล้มเหลวด้วยข้อความ "jQuery ไม่ได้ถูกกำหนด" เพราะยังไม่ได้โหลด ฉันไม่เห็นวิธีแก้ไขปัญหานี้
ปัญหาที่สาม (ด้วยวิธีการอย่างใดอย่างหนึ่ง) คือพวกเขาเป็นหนึ่งภาระภายนอก สมมติว่าคุณมีปลั๊กอินและรหัสจาวาสคริปต์ของคุณเองคุณมีคำขอภายนอกอย่างน้อยสองคำขอเพื่อโหลด Javascript ของคุณ คุณน่าจะดีกว่าที่จะได้รับ jquery ปลั๊กอินที่เกี่ยวข้องทั้งหมดและรหัสของคุณและวางลงในไฟล์ที่ย่อเล็กสุดหนึ่งไฟล์
จากอาแจ็กซ์ห้องสมุด API คุณควรใช้ Google สำหรับ Hosting? :
ในการโหลดครั้งคุณกำลังโหลดสองสคริปต์ - สคริปต์ jsapi และสคริปต์ mootools (เวอร์ชันบีบอัดจากด้านบน) นั่นคือการเชื่อมต่อสองจุดแทนที่จะเป็นหนึ่งจุด จากประสบการณ์ของฉันฉันพบว่าความเร็วในการโหลดนั้นช้ากว่าการโหลดจากเซิร์ฟเวอร์ที่ใช้ร่วมกันส่วนตัวของฉัน 2-3 เท่าแม้ว่าจะมาจาก Google และไฟล์บีบอัดเวอร์ชันของฉันนั้นใหญ่กว่า K ของ Google เล็กน้อย สิ่งนี้แม้หลังจากโหลดไฟล์และ (น่าจะเป็น) แคช ดังนั้นสำหรับฉันเนื่องจากแบนด์วิดท์ไม่สำคัญมากนัก
สุดท้ายคุณมีปัญหาที่อาจเกิดขึ้นของเบราว์เซอร์หวาดระแวงการตั้งค่าสถานะการร้องขอเป็นความพยายามของ XSS โดยทั่วไปจะไม่เกิดปัญหากับการตั้งค่าเริ่มต้น แต่ในเครือข่ายองค์กรที่ผู้ใช้อาจไม่สามารถควบคุมเบราว์เซอร์ที่พวกเขาใช้ในการตั้งค่าความปลอดภัยที่คุณอาจมีปัญหา
ดังนั้นในที่สุดฉันก็ไม่เห็นฉันใช้ Google AJAX API สำหรับ jQuery อย่างน้อย (API ที่ "สมบูรณ์" มากกว่านั้นเป็นเรื่องที่แตกต่างกันในบางวิธี) มากยกเว้นการโพสต์ตัวอย่างที่นี่
src
ไวยากรณ์ที่ง่ายขึ้น / ปลอดภัย / เร็วขึ้นที่คุณใช้ตอนนี้หรือไม่ คำตอบของคุณเป็นที่ยอมรับโดยทั่วไปและการเปลี่ยนแปลงทั้งสองจะช่วยให้ผู้คนได้รับสิ่งที่พวกเขามาอย่างรวดเร็ว