2012-06-13 33 views
5

khi tôi quay lại chế độ xem xương sống, cách tốt nhất để bỏ qua hiển thị lại những thứ như hình ảnh và bản đồ google là gì? Ảnh của tôi và chế độ xem bản đồ có xu hướng nhấp nháy thực sự xấu mỗi lần xem lại được hiển thị lại (điều này khá thường xuyên). Với những hình ảnh đặc biệt, đó là trường hợp mà các động cơ templating đặt bố trí từ đầu, mà gây ra các thẻ hình ảnh để lấy bitmap hoặc từ máy chủ hoặc từ bộ nhớ cache một lần nữa.Tránh hiển thị lại hình ảnh và các nội dung khác từ chế độ xem xương sống

Tất nhiên, tôi vẫn muốn chế độ xem vẫn không thuyết phục được bố cục, vì vậy về mặt kỹ thuật, không nên biết rằng chúng tôi sẽ hiển thị hình ảnh, đúng không?

+0

phụ thuộc vào cách bạn đang render hình ảnh? Bạn đang sử dụng tay lái hay chỉ chèn chúng dưới dạng văn bản? – jakee

+0

Tôi đang sử dụng bộ ria mép tại thời điểm này và chỉ cần chèn các url từ mô hình dữ liệu. Tôi đã nghĩ đến việc nhảy vào tay lái tại một số điểm. Điều này sẽ giúp đỡ? – preslavrachev

+0

Bạn có luôn biên dịch lại mẫu của mình không? – jakee

Trả lời

9

Tôi sẽ cung cấp giải pháp xung đột với giả định của bạn "Chế độ xem phải độc lập với mẫu".

Nếu bạn gọi render() bất cứ lúc nào bất cứ điều gì đã thay đổi trong mô hình bạn sẽ có này nhấp nháy trong trình duyệt của bạn, đặc biệt nếu mẫu là lớn.

Đề xuất của tôi tách riêng render của Chế độ xem chỉ xảy ra một lần khi Chế độ xem lần đầu tiên được hiển thị và một số phương pháp trợ giúp update chịu trách nhiệm cập nhật các phần nhỏ của Chế độ xem được liên kết với thuộc tính Mô hình cụ thể.

Ví dụ:

// code simplified and not tested 
var MyView = Backbone.View.extend({ 
    initialize: function(){ 
    this.model.on("change:title", this.updateTitle, this); 
    this.model.on("change:description", this.updateDescription, this); 
    // ... more change:XXX 
    }, 

    render: function(){ 
    this.$el.html(this.template(this.model.toJSON())); 
    }, 

    updateTitle: function(){ 
    this.$el.find(".title").html(this.model.get("title")); 
    }, 

    updateDescription: function(){ 
    this.$el.find(".description").html(this.model.get("description")); 
    }, 

    // ... more updateXXX() 
}) 
+1

đó là sự thật, và tôi đã theo cách tiếp cận này một thời gian ... nhưng ngày càng nhiều, tôi bắt đầu thấy những tên tuổi lớn trong cộng đồng JS tư vấn cho việc phân tách rõ ràng các mối quan tâm ... mặc dù kỹ thuật sử dụng các mẫu trong JS là vẫn còn thiếu sót – preslavrachev

+0

@ user1107412 luôn luôn có một sự căng thẳng liên tục giữa _patterns_ và _pragmatism_ :) (chủ nghĩa thực dụng: _an cách đánh giá lý thuyết hoặc niềm tin về thành công của ứng dụng thực tế của họ_ Từ điển tiếng Anh Oxford). – fguillen

+1

@ user1107412: Bạn có thể chia nhỏ chế độ xem thành một bản xem trước đã đặt và sau đó cho phép các bản phụ đề nhỏ cập nhật khi cần. Điều đó có lẽ sẽ là vô nghĩa nếu không có một quan điểm quá phức tạp. –

1

Để có kết quả tốt nhất, bạn thực sự không muốn hiển thị lại HTML chứa phương tiện của bạn, vì vậy tôi khuyên bạn nên sử dụng nhiều lượt xem nhắm mục tiêu hơn cho nội dung thay đổi để bạn không cần phải trả lại lượt xem với nội dung không có.

Các vấn đề liên quan