2008-11-08 25 views
5

Làm thế nào có các bạn xử lý làm việc với jQuery bao gồmcách sạch của việc có jquery bao gồm với ASP.Net MVC

<script type="text/javascript" src="jquery.js"></script> 

trong Asp.Net MVC khi làm việc với các điều khiển views/xem một phần? Về cơ bản, tôi không muốn làm cho jquery bao gồm trong trang chủ vì tôi không sử dụng jquery trong tất cả các quan điểm của mình, nhưng tôi cũng muốn một cách dễ dàng để người dùng kiểm soát để có thể tạo jquery bao gồm ở bên phải vị trí ('đầu') mà không tạo ra jquery trùng lặp bao gồm.

Cách tốt nhất là sử dụng ScriptManaager, nhưng tôi không muốn dựa vào ASP.Net Ajax cho ứng dụng này. Có một ScriptManager 'nhẹ' mà tôi có thể sử dụng cũng cho phép intellisense mới được phát hành cho jquery không?

Tôi đã tạo một WebControl cung cấp chức năng này, nhưng tôi không nhận được hỗ trợ intellisense cho VS2008, mà tôi thực sự muốn.

Hy vọng điều này có ý nghĩa.

Trả lời

13

Nếu bạn sử dụng JQuery với tỷ lệ phần trăm cao các trang của bạn, tôi chỉ cần đặt nó vào trang chính. Nó chỉ sẽ được tải xuống một lần tại thời điểm đó nó được lưu trữ trên trình duyệt và sẽ có tác động không đáng kể trên perf cho rendering trang của bạn.

0

Bạn luôn có thể làm điều này:

làm cho một util.js nhẹ đó là trong mỗi trang, trong đó bạn có thể đặt công cụ phổ biến khác nhau, cộng thêm này:

function loadJSInclude(scriptPath, callback) 
{ 
    var scriptNode = document.createElement('SCRIPT'); 
    scriptNode.type = 'text/javascript'; 
    scriptNode.src = scriptPath; 

    var headNode = document.getElementsByTagName('HEAD'); 
    if (headNode[0] != null) 
     headNode[0].appendChild(scriptNode); 

    if (callback != null)  
    { 
     scriptNode.onreadystagechange = callback;    
     scriptNode.onload = callback; 
    } 
} 

Sau đó, theo quan điểm của bạn , chỉ cần đặt:

<script type='text/javascript'> 
    if(typeof(someJqueryObject) == "undefined")   
     loadJSInclude('jquery.js', doYourStuff);   
    else   
     doYourStuff(); 

    function doYourStuff() 
    { 
     // jQuery will be loaded now, so you can do your stuff here. 
    } 
</script> 
+1

nhưng bạn sẽ không nhận được phần gợi thoải mái với điều này – Jake

3

Không chắc chắn cách thực hiện điều này chỉ với một phần lượt xem mặc dù bạn có thể thực hiện theo từng trang với công nghệ hiện có.

Bạn có thể tạo một ContentPlaceHolder trong trang chính của bạn bên trong thẻ đầu. Hơn trong điều khiển người dùng của bạn chỉ cần đặt jQuery bao gồm trong khu vực nội dung ContentPlaceHolder của các trang của bạn.

1

Ahh cố gắng để đăng bài này là lái xe cho tôi hạt vì nó đang được coi là một phần của trang ... nhưng

<script src="<%=Url.Content("~/Content/js/jquery-1.2.3.min.js") %>" type="text/javascript"></script> 
Các vấn đề liên quan