Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果在视口中渲染,如何在属性值中专门计算角度ui网格模板函数?_Javascript_Angularjs_Performance_Angular Ui Grid_Ui Grid - Fatal编程技术网

Javascript 如果在视口中渲染,如何在属性值中专门计算角度ui网格模板函数?

Javascript 如果在视口中渲染,如何在属性值中专门计算角度ui网格模板函数?,javascript,angularjs,performance,angular-ui-grid,ui-grid,Javascript,Angularjs,Performance,Angular Ui Grid,Ui Grid,我正在使用angularjs和ui-grid自定义cellmetplate。每个单元格都有一个对象作为COL\u FIELD。该对象被传递给一个函数,该函数返回cellTemplate的src属性中使用的image data uri,因此每个单元格都呈现一个图像 我注意到,当我定义自定义cellTemplate时,如下所示: <img src="{{grid.appScope.getCachedImg(COL_FIELD)}}" /> …一切正常,但所有单元格和所有行的函数都会

我正在使用
angularjs
ui-grid
自定义
cellmetplate
。每个单元格都有一个对象作为
COL\u FIELD
。该对象被传递给一个函数,该函数返回
cellTemplate
src
属性中使用的
image data uri
,因此每个单元格都呈现一个图像

我注意到,当我定义自定义
cellTemplate
时,如下所示:

<img src="{{grid.appScope.getCachedImg(COL_FIELD)}}" />

…一切正常,但所有单元格和所有行的函数都会在网格出现时进行计算,因此响应速度较慢

出于测试目的,我尝试了以下单元格模板:

<img src="https://dummyimage.com/30x30/000/fff&text={{COL_FIELD.attributes.displayName[0]}}" />

…这在我希望的意义上起作用,因为只有视口中的单元格才能进行服务器调用


造成这种差异的原因是什么?如果函数返回
图像数据uri
,而不是服务器调用返回它,我怎么会有第二种行为呢。是否只有视口单元格请求向上或向下滚动

为什么不使用base64图像,尤其是在使用30x30时?在这种情况下,根本不需要调用http请求

 <img src="{{COL_FIELD.image}}" />

是的,这就是我正在使用的,但我不想生成
数据:image/jpeg;base64
提前导致我的网格包含数千行和至少6-12列,因此生成它们的速度变慢。。。。这就是为什么我想到函数调用返回
数据:image/jpeg;base6
但由于某些原因,此函数被调用用于所有行和列,而不仅仅是给定时刻视口的一部分。我的函数返回的图像基本上是通过编程生成的。在COL_FIELD对象的基础上,生成屏幕外的
plotly.js
图形,转换为svg,然后转换为
数据:图像/jpeg;返回base64
。所以提前做2000X12次不是一个选项。。。
{
   image: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gNzAK/9sAQwAKBwcIBwYKCAgICwoKCw4YEA4NDQ4dFRYRGCMfJSQiHyIhJis3LyYpNCkhIjBBMTQ5Oz4+PiUuRElDPEg3PT47/9sAQwEKCwsODQ4cEBAcOygiKDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7/8AAEQgAIAAgAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A2rvUorSB5pnVFVSfmOM4Ga5WPx219cPBa6c7nHDF8Ko9WOPlHvW3rmmLNDcGRYZIrZPMfz5dsffKyAqfqMc5z06Vy8MNlcxvcxQuLF2PkxzY8y55HLkAHywR8q98DPGBXDClG2p1ym76FxfEN3dzb7aNY7EA/wCkSAlpTn+BcjKjpuPBx+FWktLu7KPvESEj593mSH39vwwKl0y2t2dLm7nAcMCcpkYHYD0+lP1TWdN8iVLK1EbOR5kucMw4PbtyOPx7VtCEE9hS5rGfr2pajrot5NRkS3tmH7uxt/mEeSBud/4n68Dp+NaN/pk10IJLCNBGqBVUHsB2PTHHrXPTxXFuZInO+2VgY2B5X1BH9av23iF9NsppLhribao8kR4G055ZjkEgD0z9RWdOpGeqNJU3TdpItL4e1i4DAhYhgHoT39RwPzq9ZeE7eINPcSmfa7HORsAIAwT90Hr/ABH6VXg1+aaFJJLmCKMgMCUVyfzLEflmnT67aZDyy3F7KORk4UHtgt0A9NvWtbozv2R//9k="
}