how to apply the load on demand (Lazy loading) concept in datalist for Images using asp.net?

女生的网名这么多〃 提交于 2019-11-28 02:13:46

问题


In my asp.net application have one data list, page load event I have to bind number of image items(1000), how to apply the load on demand (What you can say Lazy loading of images) (when scrolling the page that time only bind the items like facebook new needs page)

Basically I don't want page load delay due to no of images and their loading time. my code is page load event get the data and bind the datalist

SqlCommand comd = new SqlCommand("usp_GetSubCategoryProducts", OBcon);
                comd.CommandType = CommandType.StoredProcedure;
                comd.Parameters.Add("@ID", SqlDbType.Int).Value = SubCategory_id;

                DataSet ds = new DataSet();
                SqlDataAdapter sqlAdapter = new SqlDataAdapter();
                sqlAdapter.SelectCommand = comd;
                sqlAdapter.Fill(ds);
 listView.DataSource = ds;
                listView.DataBind();

回答1:


Well you can do this using jQuery's lazy image load tool... This is great and just fit your needs.

http://www.appelsiini.net/projects/lazyload

Lazy Load is a jQuery plugin written in JavaScript. It delays loading of images in long web pages. Images outside of viewport (visible part of web page) wont be loaded before user scrolls to them. This is opposite of image preloading.

Using Lazy Load on long web pages containing many large images makes the page load faster. Browser will be in ready state after loading visible images. In some cases it can also help to reduce server load. (Above is taken from the site)

For demo pls visit this page and you would know that this is the thing you are looking for.

This is an easy to integrate stuff so fit your needs.

To make it in Datalist or repeater you can do this using

<asp:Image ID="LazyImages" runat="server" 
  CssClass="lazy" src="img/BlankImage.gif" data-original="<%# Eval("URLofImageFromDB"))%>" />

You need to concentrate on CssClass and SRC attribute while binding and rest is taken care by jQuery.

Configuration of JQuery is important.




回答2:


There is not any built in function in asp.net to do this task.But you may use jquery plugin for this purpose.

Lazy loader delays loading of images in (long) pages. Images below the fold (far down in the page) wont be loaded before user scrolls down.

For details see a link. http://archive.plugins.jquery.com/project/lazyload




回答3:


The DataList is not meant for this purpose. You are better off using javascript and ajax calls.

Have a url that takes the StartIndex and Count of as parameters and list our the urls to show. Then just append them in using javascript.



来源:https://stackoverflow.com/questions/12399560/how-to-apply-the-load-on-demand-lazy-loading-concept-in-datalist-for-images-us

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!